Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript validate:创建一个必填字段,除非远程返回false_Javascript_Jquery_Jquery Validate_Depends - Fatal编程技术网

Javascript validate:创建一个必填字段,除非远程返回false

Javascript validate:创建一个必填字段,除非远程返回false,javascript,jquery,jquery-validate,depends,Javascript,Jquery,Jquery Validate,Depends,我的任务是使一个字段成为必填字段,但如果ajax/远程调用返回false,则取消该必填字段顺序。我已经玩了好几天了,试图解决这个问题 我曾尝试以多种不同的方式使用Dependes,最初使用了此示例,但无法使其发挥作用- 出于某种原因,该示例甚至不会尝试查看远程代码 我一直在尝试剥离我的代码,只是为了了解depends是如何工作的 HTML: ajax_code.php:对于测试来说,现在只是一个简单的假或真的回音 <?php echo "true"; // return false

我的任务是使一个字段成为必填字段,但如果ajax/远程调用返回false,则取消该必填字段顺序。我已经玩了好几天了,试图解决这个问题

我曾尝试以多种不同的方式使用Dependes,最初使用了此示例,但无法使其发挥作用-

出于某种原因,该示例甚至不会尝试查看远程代码

我一直在尝试剥离我的代码,只是为了了解depends是如何工作的

HTML:

ajax_code.php:对于测试来说,现在只是一个简单的假或真的回音

 <?php
  echo "true";  // return false if OK
  ?>
因此,如果远程响应返回false,则不进行验证,但如果返回true,则进行验证

希望这有点道理。很难理解我正在努力实现的目标和我迄今为止所做的努力


感谢您的任何想法和帮助。

展示更完整的代码示例。我在代码中的任何地方都没有看到远程规则声明。我没有看到你的HTML标记。我也看不到您使用remote调用的服务器端功能。如果您尝试了开发人员建议的解决方法,请向我们展示您是如何实现它的。有一个简单的问题:您为什么要这样做?那有什么好处?您可以简单地向需要验证的字段添加一个必需的类-我不明白您为什么要发出额外的请求。使用ajax请求进行验证对用户不是很友好——您可以使用普通的后端验证进行验证that@gulty,该字段不是必填字段,但是如果已填写,则必须将该值与远程服务器上的值进行比较。对我来说,这似乎是一件非常标准的事情。当然,但是使用ajax请求对我来说并没有什么意义。这种服务器端验证不需要js。请求也会被发送way@gulty,远程方法是这个客户端插件的一部分,它工作得很好。开始关于客户端验证和服务器端验证的辩论不适合评论部分。我们应该已经理解了基本的区别,并专注于回答具体的问题。
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();
}
 <?php
  echo "true";  // return false if OK
  ?>