我以为我在规则中犯了一个错误,但这个错误令我感到困惑!
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 :(得分:0)
<强> 1。 onkeyup: true,
强>
As per documentation,true
不是onkeyup
选项的有效值。默认情况下,插件的keyup
行为已启用,您只能使用false
或覆盖功能。将此选项设置为true
可能会导致不可预测的结果。如果您不想禁用此行,则需要完全删除此行。
<强> 2。 tooltip_options:
强>
名为.validate()
的{{1}}方法没有此类选项。最好的情况,这个选项什么都不做。
请参阅the official documentation,了解您tooltip_options
内允许使用的唯一选项及其指定设置。