button在Firefox上点击提交表单(form)的有关问题

button在Firefox下点击提交表单(form)的问题

 

【关键词】Button Form FireFox
【问题描述】 

        使用Firefox3.0+打开页面,点击了一个<button onclick="doWork()"></button>去执行doWork方法,但是doWork没有执行,表单却提交了。另外IE6、7没有此问题。

【分析原因】
        由于根据w3c标准<button>默认的type为submit,也就是说如果button没有声明type的话,那此button就是相 当于一个submit,所以如果此button是在一个表单里的话,点击它就会提交表单。然而IE6、7没有严格按照此标准
实现,因此不会出现此问题。

【解决办法】
        有两种解决方法
        方法1:
        在<button>中加入onclick="return false",这样禁止点击时提交表单

        方法2:
        在<button>中加入type="button",声明为button,这样表单也不会提交了

【避免此类问题的建议】 
        为了解决跨浏览器的问题,最好是使用<button type="button" >显式声明为一个button

*根据网友们的回复,加上<input type="button" />为建议解决方式