如何在jquery远程验证中编写if和else

Har*_*aKP 1 jquery jquery-validate

我需要在远程方法中添加一个 if 条件,因此对于没有 $('#emailUrl').val() 的表单,将落入 else 条件

rules : {           

    lastName : {
        required : true,
        namevalidation : true
    },
    // Remote is the jquery function to check unique character using URL
    primaryEmailId : {
        required : true,
        email : true,
        remote : { 
            // If Condition required here. Please suggest me
            url : $('#emailUrl').val(),
            data: {
                primaryEmailId: function() {
                    return $("#primaryEmailId").val();  
                },
            }
       },
    }
}
Run Code Online (Sandbox Code Playgroud)

Ryl*_*ley 6

您需要做的是在远程规则中使用dependsand param。它们在文档中有所描述,但不清楚它是否适用于远程(确实如此!)。

因此,以您的示例为例,您可以将其修改为如下所示:

primaryEmailId : {
    required : true,
    email : true,
    remote : { 
      //if this returns true, remote will be triggered
      depends: function(){
        return $('#emailUrl').val() != '';
      },
      //using these parameters
      param: {
        url : 'your validation url.php',
        data: {
            primaryEmailId: function() {
                return $("#primaryEmailId").val();  
            },
        }
      }
   },
}
Run Code Online (Sandbox Code Playgroud)

我唯一不清楚的部分是为什么要根据用户调用不同的 URL?希望重要的部分更多是关于如何调用远程:)

工作示例(请注意,jsfiddle 关于 ajax 调用有点奇怪,所以我的有点复杂)。