itVincent Blog - Java Working Fun!

技术引领时代!
posts - 117, comments - 181, trackbacks - 0, articles - 12

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

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" />为建议解决方式
        

Feedback

# re: button在Firefox下点击提交表单(form)的问题  回复  更多评论   

2009-08-24 17:13 by 99读书人
写的很好!

# re: button在Firefox下点击提交表单(form)的问题  回复  更多评论   

2009-08-25 09:24 by HiMagic!
应该是执行完doWork()才提交的吧。

# re: button在Firefox下点击提交表单(form)的问题  回复  更多评论   

2009-08-28 14:43 by 雨中滴
- -! 我感觉最有效的解决方法是废弃 <button></button> 标签。
使用<input type="button" /> ,这样既没有那个提交bug 也保证了通用性

# re: button在Firefox下点击提交表单(form)的问题  回复  更多评论   

2009-10-12 11:06 by vanlin
习惯了用 <input type="button" />

# re: button在Firefox下点击提交表单(form)的问题  回复  更多评论   

2012-02-16 15:45 by ee
顶顶顶

# re: button在Firefox下点击提交表单(form)的问题  回复  更多评论   

2012-02-16 15:46 by ee
哈哈哈

只有注册用户登录后才能发表评论。


网站导航: