我正在尝试远程验证表单字段。如果在我在页面上时该字段获得焦点,则一切都很有效。但是,如果字段从不获得焦点,则表单要求我单击“提交”按钮两次才能成功提交。
我希望它只是验证字段是否获得焦点,或者以某种方式阻止表单需要两次单击才能提交。有人有什么想法吗?
$("#form1").validate({
rules: {
project: {
required: true,
remote: "check.php"
}
},
messages: {
project: {
required: "Required.",
remote: "Check Failed."
}
},
});
<input type="text" name="project" id="project" value="X"/>
答案 0 :(得分:10)
Instead of making ajax setup to false you can just set "project" "remote" async to false like this
$("#form1").validate({
rules: {
project: {
required: true,
remote: {url:"check.php", async:false}
}
},
messages: {
project: {
required: "Required.",
remote: "Check Failed."
}
},
});
答案 1 :(得分:5)
提交按钮的名称是什么? jQuery Validate不喜欢名称“submit”。我将提交按钮的名称更改为“提交者”,问题就消失了。查看此链接:https://github.com/jzaefferer/jquery-validation/issues/58
答案 2 :(得分:4)
您可以通过添加以下内容来解决此问题:
$.ajaxSetup({
async: false
});
在调用验证插件之前。
答案 3 :(得分:2)
我遇到了同样的问题 remote:{url:“check.php”,async:false} 为我工作。