Posted on 2009-08-24 13:46
itVincent 阅读(3767)
评论(6) 编辑 收藏 所属分类:
javascript
【关键词】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" />为建议解决方式