2015-09-23 2 views
0

Я думал, что только что совершил ошибку в своих правилах, но эта ошибка меня озадачила!JQuery.Validate -> TypeError: 'undefined' не является функцией

TypeError: 'undefined' is not a function (evaluating 'validator.settings["on"+event.type].call(validator,this[0])') 

я написал отдельное пользовательское правило ниже первого, который использует jquery.payment библиотеки для проверки количества CC. Кажется, это jquery.validate.min, который бросает ошибку, хотя! Любая идея?

Вот мои правила:

jQuery.validator.addMethod("jqPaymentCreditCard", 
    function(value, element) { 
    return this.optional(element) || 

$.payment.validateCardNumber(value); 
     }, 
     " Invalid credit card number."); 

    $("#SSLForm").validate(
    {   
     onkeyup: true, 
     errorClass: "is-invalid",  
     errorPlacement: function(error, element) { 
      if (element.attr("name") == "KKMonth") { 
       error.insertAfter("#KKYear"); 
      } else { 
       error.insertAfter(element); 
      } 
     }, 
     rules: { 

      CreditCardHolder: { required: true }, 
      KKnr: { required: true , jqPaymentCreditCard: true}, 
      KKMonth: { required: true }, 
      KKYear: { required: true }, 
      CCCVC: { required: true, digits: true, minlength: 3, maxlength: 4 } 
     }, 
     messages: { 
      CreditCardHolder: { required: $("#CreditCardHolderRequiredHdn").val() }, 
      KKnr: { required: $("#KKnrRequiredHdn").val(), jqPaymentCreditCard: $("#KKnrRequiredHdn").val() }, 
      KKMonth: { required: $("#KKMonthRequiredHdn").val() }, 
      KKYear: { required: $("#KKYearRequiredHdn").val() }, 
      CCCVC: { required: $("#CCCVCRequiredHdn").val(), digits: $("#CCCVCDigitsHdn").val(), minlength: $("#CCCVCDigitsHdn").val(), maxlength: $("#CCCVCDigitsHdn").val() } 
     }, 
     tooltip_options: { 
       CreditCardHolder: {placement: 'right' }, 
       KKnr: { placement: 'right' }, 
       KKMonth: { placement: 'right' }, 
       KKYear: { placement: 'right' }, 
       CCCVC: { placement: 'right' } 
     } 

    }); 

ответ

0

1. onkeyup: true,

As per documentation, true не является допустимым значением для параметра onkeyup. Поведение плагина keyup включено по умолчанию, и вы можете использовать только false или функцию переустановки. Установка этой опции на true может привести к непредсказуемым результатам. Вам нужно будет полностью удалить эту строку, если вы не хотите ее отключать.

2. tooltip_options:

Там нет такого варианта для .validate() метода, называемого tooltip_options. Лучший случай, этот вариант ничего не делает.

Пожалуйста, обратитесь к the official documentation за единственными параметрами, которые разрешено использовать в пределах .validate() и их назначенных настройках.

+0

Спасибо Sparky !! Первое, что я думаю, это причина, по которой я собираюсь попробовать это сейчас. Второй отдельный плагин jquery.validate.bootstrap.tooltip для отображения всплывающих подсказок в качестве сообщений об ошибках, поэтому я не думаю, что это вызывает какие-либо проблемы, поскольку они работают. – user1957687

+0

@ user1957687, если всплывающие подсказки работают, это НЕ НЕ, потому что вы помещаете 'tooltip_options' внутри' .validate() '. Этот параметр абсолютно ** бессмысленен ** в этом контексте. – Sparky

+0

спасибо! этот первый ответ, который вы дали исправил! – user1957687

Смежные вопросы