0

我的任务是使一个字段成为必填字段,但如果 ajax/远程调用返回 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>  

查询:

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:现在只是一个简单的 false 或 true 回显用于测试

 <?php
  echo "true";  // return false if OK
  ?>

因此,如果远程响应返回 false,则不进行验证,但如果返回 true,则完成验证。

希望这有点道理。很难理解我正在努力实现的目标以及到目前为止我已经尝试过的目标。

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

4

0 回答 0