提交表单时,我正在运行此表单检查:
if((formData[4].value == 1 || formData[4].value == 2) && !formData[2].value) { alert('Please fill out the key field'); return false; } else { $.ajax({ url: "/ajax/key_check.php", cache: false, data: "key=" + formData[4].value, dataType: "html", success: function(data) { if(data == 1) { alert('Key already exists'); return false; } } }); return true; }
该脚本有效,如果数据== 1,它会警告键已经存在,但是表单仍在提交。我以为如果data == 1则返回false将停止处理表单,但是无论如何它都会继续并添加键,并且弹出键已经存在。如果data == 1,如何阻止表单提交?我什至尝试这样做:
if(data == 1) { alert('Key already exists'); return false; } else { return true; }
然后删除脚本底部的return true,但是会发生相同的问题。弹出窗口出现,但表单仍得到处理。
一个return回调的回报 从回调 ,不是父功能像你想......但你 能 得到的效果你想要的,就像这样:
return
if((formData[4].value == 1 || formData[4].value == 2) && !formData[2].value) { alert('Please fill out the key field'); return false; } else { $.ajax({ url: "/ajax/key_check.php", cache: false, data: "key=" + formData[4].value, dataType: "html", success: function(data) { if(data == 1) { alert('Key already exists'); } else { $("#someForm")[0].submit(); } } }); return false; }
这样做永远不会直接提交,但是 如果 检查正常,请调用* native .submit()方法,提交表单,然后不再运行此处理程序。
.submit()