使用jQuery提交两次

时间:2012-07-11 19:55:50

标签: jquery submit double-submit-problem

为了防止意外提交并确保用户双重检查他输入的所有信息,我通过弹出另一个按钮询问他是否真的要提交来延迟提交表单...

不幸的是,当用户点击“否”并稍后使用“是”按钮提交表单时,它将提交两次。当用户在...之前没有点击“否”时,它首次运行。

我准备了一点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()
        })
})

在使用“是”提交之前,您可以看到点击“nah”时,会有多个提醒框。有人暗示为什么它会这样做?

2 个答案:

答案 0 :(得分:4)

每次点击提交按钮时,你都会将点击事件添加到是和否按钮,但是你永远不会清除它们,所以如果你点击提交然后没有5次,最后点击是会激活5次。 / p>

在绑定新事件之前,您应该unbind点击事件,或者不要在提交按钮的点击事件中绑定点击事件。

答案 1 :(得分:3)

您应该侦听onSubmit事件而不是onClick事件。