我真的不知道为什么我在jquery中的自定义规则不起作用。它只是在文本中查找子字符串,如果它出现在DOESNT中则需要它,如果出现则不需要。我正在使用jquery验证库。我希望它简单......请帮忙!
jQuery.noConflict();
(function($) {
$(function() {
$("#frmUpdateCC").validate({
errorContainer: "#updateProfileCC",
errorPlacement: function(error, element) {},
rules: {
txtCardNo1: {
required: true,
creditcard: function() {
var str = $('#txtCardNo1').val();
str = (str.indexOf("xxxxxx"));
return (str != 6 );
}
}
cboMonth1: "required",
cboCard1: "required",
}
});
});
})(jQuery);
我尝试使用!== 6,!='6'及其他变体
答案 0 :(得分:2)
好吧,str.indexOf("xxxxxx")
将在字符串"xxxxxx"
中返回str
的起始位置。
因此,如果str
包含'xxxxxx'
,那么如果'xxxxxx'
从位置6开始,则您的语句只会评估为真。您是否打算测试str.length?
否则,为什么不简单地做:
str = (str.indexOf("xxxxxx"));
return (str === -1 );
答案 1 :(得分:0)
我认为您希望将您的回调函数分配给“required”属性,而不是“creditcard”属性:
required: function() { var str = .... }
目前,您将所需的属性硬编码为true。
答案 2 :(得分:0)
你必须这样做
creditcard: function() {
var str = $('#txtCardNo1').val();
str = (str.indexOf("xxxxxx"));
if (str > -1) {
return true;
}
else {
return false;
}
}
我认为规则信用卡只支持数字格式,例如 nnn-nnn-nnn 。所以我认为你必须根据需要添加另一条规则,我的意思是自定义规则。