jquery validate - пользовательское правило - обратный вызов зависимостей - PullRequest
0 голосов
/ 27 июля 2011

Я действительно понятия не имею, почему мое пользовательское правило в jquery не работает. все это ищет подстроку в тексте, делая ее обязательной, если она НЕ появляется, не обязательной, если она появляется. Я использую библиотеку проверки 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 ]

2 голосов
/ 27 июля 2011

Ну, str.indexOf("xxxxxx") вернет начальную позицию "xxxxxx" в вашей строке str.

Итак, если str содержит 'xxxxxx', ваши утверждения будут оцениваться как истинные, только если 'xxxxxx' начинается с позиции 6. Возможно, вы хотели проверить на str.length?

В противном случае, почему бы просто не сделать:

str = (str.indexOf("xxxxxx"));
    return (str === -1 );
0 голосов
/ 28 июля 2011

Вы должны сделать так

creditcard: function() {
                    var str = $('#txtCardNo1').val();
        str = (str.indexOf("xxxxxx"));
       if (str > -1) {                                                                
                            return true;
                        }
                        else {                                
                            return false;
                        }
                }

я думаю, что правило кредитная карта будет поддерживать только числовой формат, например nnn-nnn-nnn . Поэтому я думаю, что вам нужно добавить другое правило в соответствии с вашими потребностями, я имею в виду пользовательское правило .

0 голосов
/ 27 июля 2011

Я думаю, вы хотите, чтобы ваша функция обратного вызова была назначена свойству "required", а не свойству "creditcard":

required: function() { var str = .... }

В настоящее время у вас есть обязательное свойство, жестко запрограммированное в true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...