提交发生了两次与jQuery
问题描述:
为了防止意外提交,并确保用户doublechecks他输入的所有信息,我推迟了提交表单,弹出另一个按钮,询问他是否真的想提交...提交发生了两次与jQuery
不幸的是,当用户点击'否'并且稍后用'是'按钮提交表单时,它将提交两次。它的工作原理,当用户没有点击“不”之前...
我准备了一个小jsfiddle here的第一次,这就是我的代码:
$('#form').on('click','#submitbutton',function(e){
e.preventDefault()
$('#formchecker').show()
$('#doit').click(function(e2){
e2.preventDefault()
alert('I will submit as you say')
})
$('#dont').click(function(e2){
e2.preventDefault()
$('#formchecker').hide()
})
})
点击之前“罗”时,你可以看到提交'是',则会有多个警告框。有人得到一个暗示为什么它的行为?
答
每次单击提交按钮时,您都将点击事件添加到yes和no按钮,但是您永远不会清除它们,所以如果您要单击提交然后没有5次,最后单击yes会启动5次。
您应该在绑定新事件之前点击事件,或者不要在提交按钮的点击事件中绑定点击事件。
这是我眼中的正确答案,谢谢:)也许别人有另一个建议,但否则我会尽快接受! – Anonymous 2012-07-11 20:09:15