我的任务是将字段设为必填字段,但如果ajax / remote调用返回false,则取消所需的字段顺序。我现在已经玩了几天试图解决这个问题。
我尝试过以不同的方式使用依赖,并且最初使用此示例但无法使其工作 - https://github.com/jzaefferer/jquery-validation/issues/431
(这个例子甚至因为某些原因甚至试图查看远程代码)
试图剥离我的代码只是为了了解依赖是如何起作用的。
HTML:
<form method="post" action="" id="register_employee_form" >
<table>
<tr>
<tr>
<td class="column_1"><label>FORENAME</label></td>
<td><input name="forename" id="forename" value="" /></td>
</tr>
</table>
<input type="submit" value="Register" onclick="register(); return false;" />
</form>
JQUERY:
function register()
{
var cancel_validation = 0; // Dont cancel validation
var form = $("#register_employee_form");
var validator = form.validate({
errorElement: "p",
rules:
{
forename:
{
required: true,
remote: {
url: "ajax_code.php",
complete: function(response) {
if (response.responseText == "false")
{
cancel_validation = 1;
}
} // complete
}, // remote
depends: function() {
if(cancel_validation == 1)
{
return false;
}
}
} // forename
},
messages: {
forename: {
required : "forename required",
remote : "REMOTE"
}
},
submitHandler: function(form) {
form.submit();
}
});
validator.form();
}
ajax_code.php:现在只是一个简单的虚假或真实的回声测试
<?php
echo "true"; // return false if OK
?>
因此,如果远程响应返回false,则不进行验证,但如果返回true,则验证完成。
希望这有一定道理。相当难以理解我想要实现的目标以及到目前为止我尝试过的目标。
任何想法和帮助都非常感激。