jquery validate - 自定义规则 - 依赖关系回调

时间:2011-07-27 19:09:47

标签: jquery jquery-validate validation

我真的不知道为什么我在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'及其他变体

3 个答案:

答案 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 。所以我认为你必须根据需要添加另一条规则,我的意思是自定义规则