【发布时间】:2011-06-02 09:40:48
【问题描述】:
我在提交表单时运行此表单检查:
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 会停止处理表单,但是它会继续并添加密钥,并且弹出密钥已经存在消息。如果数据 == 1,如何阻止表单提交?我什至尝试这样做:
if(data == 1) {
alert('Key already exists');
return false;
} else {
return true;
}
然后删除了脚本底部的 return true ,但同样的问题发生了。弹出窗口,但表单仍在处理中。
【问题讨论】:
-
我假设这段代码是事件处理程序的一部分;此代码响应什么事件?
-
@Andrew Whitaker 实际上我正在使用一个 jquery 插件,它使您的表单使用 ajax 调用。在代码中,它允许您指定一个函数,以便在转到 action="" 值中的 url 之前运行。所以这就是这个表格的功能。在没有 ajax 调用之前它可以工作,但我需要在添加密钥之前知道密钥是否已经存在。