Jquery.Validate -> TypeError: 'undefined' is not a function
Jquery.Validate -> TypeError: 'undefined' is not a function
我以为我只是在我的规则中犯了一个错误,但是这个错误让我感到困惑!
TypeError: 'undefined' is not a function (evaluating 'validator.settings["on"+event.type].call(validator,this[0])')
我首先在下面编写了一个单独的自定义规则,它使用 jquery.payment 库来验证抄送号码。似乎是 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' }
}
});
1. onkeyup: true,
As per documentation、true
不是 onkeyup
选项的有效值。插件的 keyup
行为默认启用,您只能使用 false
或覆盖功能。将此选项设置为 true
会导致不可预知的结果。如果您不想禁用它,则需要完全删除此行。
2。 tooltip_options:
名为 tooltip_options
的 .validate()
方法没有这样的选项。最好的情况是,此选项什么都不做。
请参阅 the official documentation 了解在 .validate()
中允许使用的唯一选项及其指定设置。
我以为我只是在我的规则中犯了一个错误,但是这个错误让我感到困惑!
TypeError: 'undefined' is not a function (evaluating 'validator.settings["on"+event.type].call(validator,this[0])')
我首先在下面编写了一个单独的自定义规则,它使用 jquery.payment 库来验证抄送号码。似乎是 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' }
}
});
1. onkeyup: true,
As per documentation、true
不是 onkeyup
选项的有效值。插件的 keyup
行为默认启用,您只能使用 false
或覆盖功能。将此选项设置为 true
会导致不可预知的结果。如果您不想禁用它,则需要完全删除此行。
2。 tooltip_options:
名为 tooltip_options
的 .validate()
方法没有这样的选项。最好的情况是,此选项什么都不做。
请参阅 the official documentation 了解在 .validate()
中允许使用的唯一选项及其指定设置。