jQuery .validate:除非从远程返回false,否则创建一个字段

时间:2014-08-19 14:54:19

标签: javascript jquery jquery-validate depends

我的任务是将字段设为必填字段,但如果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,则验证完成。

希望这有一定道理。相当难以理解我想要实现的目标以及到目前为止我尝试过的目标。

任何想法和帮助都非常感激。

0 个答案:

没有答案