jQuery 验证相关规则
jQuery Validation dependent rules
我有一个简单的表单,应该使用 "if...else if" 逻辑对其进行验证。我的实际形式比这个复杂一点,但实现类似于这个例子。
这是我目前所拥有的
HTML
<form>
<input name="input" type="text" />
<br />
<button type="submit">Submit</button>
</form>
JS
$.validator.addMethod("equals1", function(value, element, param)
{
return value == 1;
}, "The value entered should be 1");
$.validator.addMethod("equals2", function(value, element, param)
{
return value == 2;
}, "The value entered should be 2");
$("form").validate({
rules: {
input: {
required: true,
equals1: true,
equals2: true
}
}
});
我希望仅当 equals1 规则为 false 时才执行 equals2 规则,如下所示
if (value == 1)
return true;
else if (value == 2)
return true;
else
return false;
我无法将这两个规则合二为一,因为我想针对不同的场景显示不同的错误消息。
我知道这个问题开始时需要依赖规则,但它背后的目的是让 "if...else if" 类型验证和不同的条件吐出不同的错误消息。这是我实现它的方法。
$.validator.addMethod("equalsCheck", function(value, element, param)
{
if (value == 1)
return true;
else if (value == 2)
return true;
return false;
},
function(){
if ($("input").val()=="12")
return "Value should not be 12 but 1 or 2";
else if($("input").val()!="1" && $("input").val()!="2")
return "Value must be equal to either 1 or 2";
return "";
});
在 addMethod 中,不是只为第三个参数传递字符串(错误消息),而是传递一个函数对象,其中 returns 您想要的错误消息。
我有一个简单的表单,应该使用 "if...else if" 逻辑对其进行验证。我的实际形式比这个复杂一点,但实现类似于这个例子。
这是我目前所拥有的
HTML
<form>
<input name="input" type="text" />
<br />
<button type="submit">Submit</button>
</form>
JS
$.validator.addMethod("equals1", function(value, element, param)
{
return value == 1;
}, "The value entered should be 1");
$.validator.addMethod("equals2", function(value, element, param)
{
return value == 2;
}, "The value entered should be 2");
$("form").validate({
rules: {
input: {
required: true,
equals1: true,
equals2: true
}
}
});
我希望仅当 equals1 规则为 false 时才执行 equals2 规则,如下所示
if (value == 1)
return true;
else if (value == 2)
return true;
else
return false;
我无法将这两个规则合二为一,因为我想针对不同的场景显示不同的错误消息。
我知道这个问题开始时需要依赖规则,但它背后的目的是让 "if...else if" 类型验证和不同的条件吐出不同的错误消息。这是我实现它的方法。
$.validator.addMethod("equalsCheck", function(value, element, param)
{
if (value == 1)
return true;
else if (value == 2)
return true;
return false;
},
function(){
if ($("input").val()=="12")
return "Value should not be 12 but 1 or 2";
else if($("input").val()!="1" && $("input").val()!="2")
return "Value must be equal to either 1 or 2";
return "";
});
在 addMethod 中,不是只为第三个参数传递字符串(错误消息),而是传递一个函数对象,其中 returns 您想要的错误消息。