请考虑以下代码。如果myField1
不等于myField2
,则会显示警告。当我在警告弹出窗口中单击“确定”时,我的表单仍然存在,所有字段仍然填充了我之前输入的数据。但是,当我修改字段以使myField1
等于myField2
,然后提交表单时,实际上提交了TWICE!这是为什么?
$(document).ready(function(){
$("#myForm").submit(function() {
var myField1 = $('#myID1).val();
var myField2 = $('#myID2).val();
if(myField1 == myField2)
{
$.ajax({
type: "POST",
url: 'myFile.php',
dataType: 'html',
data: {myData:myField1,
myData2:myField2},
success: function(data){
alert(data);
}
});
return false;
}
else
{
alert('These two fields are not equal!)
}
});
});
答案 0 :(得分:2)
好的,所以我在另一个问题上找到了这个,它解决了这个问题:
$('#myForm').unbind('submit').bind('submit',function() {
// do stuff here...
});
通过解除绑定事件,然后重新绑定它,表单不再提交两次。
答案 1 :(得分:-1)
您的提交事件将触发表单的提交操作,除非您阻止它执行此操作。运行AJAX调用并不能防止这种情况发生。你需要自己制止。
你需要:
$("#myForm").submit(function(event) {
event.preventDefault()
...