我有一个简单的表单,应使用“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;
我无法将这两个规则合并为一个,因为我想为不同的场景提供不同的错误消息。
答案 0 :(得分:0)
我知道这个问题开始时需要依赖规则,但其背后的目的是让“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中,不是仅为第3个参数传递字符串(错误消息),而是传递一个返回所需错误消息的函数对象。