jQuery проверить пользовательский метод не работает правильно

Может кто-нибудь объяснить мне, почему это не бьет по моей вспомогательной функции? Не уверен, что это синтаксис или что..

jQuery.validator.addMethod("expDateExistInPast", function (value) {
    return customFunction(value);
}, "Expiration cannot exist in past.");

$("form[name='myForm']").validate({
 rules: {
    exp: {expDateExistInPast: true}
 }, 
 messages: {
     exp: {
        required: "message", 
        expDateExistInPast: "otherMsg"
    }
 }, 
  submitHandler: function (form) {
       form.submit();
  }
})


function customFunction(value) {
    alert("magic here");
}

UPDATE-добавление HTML

<input class="myClass" type="text" name="expiration" id="exp" maxlength="4" pattern="^(0[1-9]|1[0-2])[0-9][0-9]$" required="" placeholder="MMYY" aria-required="true" aria-invalid="true">

1 ответ

  1. Ваш inputсодержит name="expiration"

    <input class="myClass" type="text" name="expiration" id="exp" maxlength="4" pattern="^(0[1-9]|1[0-2])[0-9][0-9]$" required="" placeholder="MMYY" aria-required="true" aria-invalid="true">
    

    Однако проблема заключается в том, что .validate()метод используется expвнутри rulesобъекта…

    rules: {
        exp: {
            expDateExistInPast: true
        }
    },
    

    Здесь необходимо использовать только nameатрибут…

    rules: {
        expiration: { // <- this is the NAME of the input
            expDateExistInPast: true
        }
    },
    

    Работа: jsfiddle.net/se4dc18h/