Uncaught TypeError: Cannot read property 'call' of undefined
Uncaught TypeError: Cannot read property 'call' of undefined
我有一个预先存在的表单,我正在尝试添加 jquery 验证以包含 :
<form id="form" method="POST" action="/title/">
{% csrf_token %}
<input type="hidden" name="id" value="6">
<input type="hidden" name="custom_checkbox_Electronic_Signature_man" value="1">
<p> <span class="style9">First Name </span>
<input type="text" name="first_name" value="" size="20" class="style7"><span class="style9">
Last Name </span>
<input type="text" name="last_name" value="" size="20" class="style7"><span class="style9">
使用 jquery 验证器插件,我添加了:
$('form').validate({
rules: {
first_name: {
minlen: 3,
maxlength: 15,
required: true
},
last_name: {
minlength: 3,
maxlength: 15,
required: true
},
email: {
required: true,
email: true
},
phone1: {
required: true,
phoneUS: true
},
phone2: {
required: true,
phoneUS: true
},
street: {
required: true
},
city: {
required: true
},
state: {
required: true
},
zip: {
zipcodeUS: true
}
},
highlight: function(element) {
$(element).closest('.style9').addClass('.style13');
//$(element).addClass('.style13');
},
unhighlight: function(element) {
$(element).closest('.style9').removeClass('.style13');
//$(element).removeClass('.style13');
},
errorElement: 'span',
errorClass: 'style13',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
我遇到上面列出的错误。我做错了什么?
尝试
jQuery(document).ready(function(){
$('form').validate({
rules: {
first_name: {
minlen: 3,
maxlength: 15,
required: true
},
last_name: {
minlength: 3,
maxlength: 15,
required: true
},
email: {
required: true,
email: true
},
phone1: {
required: true,
phoneUS: true
},
phone2: {
required: true,
phoneUS: true
},
street: {
required: true
},
city: {
required: true
},
state: {
required: true
},
zip: {
zipcodeUS: true
}
},
highlight: function(element) {
$(element).closest('.style9').addClass('.style13');
//$(element).addClass('.style13');
},
unhighlight: function(element) {
$(element).closest('.style9').removeClass('.style13');
//$(element).removeClass('.style13');
},
errorElement: 'span',
errorClass: 'style13',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
});
将minlen
替换为minlength
,有效,没有minlen
属性,所以call
内部失败
$('form').validate({
rules: {
first_name: {
minlength: 3, // <- here
maxlength: 15,
required: true
},
last_name: {
minlength: 3,
maxlength: 15,
required: true
},
..........
一般来说,如果您设置了无效的 jQuery 验证规则,则可能会引发此错误。
您可以使用 this link.
找到有效的验证规则
$(document).ready(function() {
jQuery.validator.addMethod("noSpace", function(value, element){
return value.indexOf(" ")<0 && value !=="";
}, "Space are not allowed");
});
确保您没有包含两次 jQuery 验证脚本。
我已经完成了这个,我已经将它包含在布局和创建视图中,这就产生了问题。我从创建视图中删除了它。
我有一个预先存在的表单,我正在尝试添加 jquery 验证以包含 :
<form id="form" method="POST" action="/title/">
{% csrf_token %}
<input type="hidden" name="id" value="6">
<input type="hidden" name="custom_checkbox_Electronic_Signature_man" value="1">
<p> <span class="style9">First Name </span>
<input type="text" name="first_name" value="" size="20" class="style7"><span class="style9">
Last Name </span>
<input type="text" name="last_name" value="" size="20" class="style7"><span class="style9">
使用 jquery 验证器插件,我添加了:
$('form').validate({
rules: {
first_name: {
minlen: 3,
maxlength: 15,
required: true
},
last_name: {
minlength: 3,
maxlength: 15,
required: true
},
email: {
required: true,
email: true
},
phone1: {
required: true,
phoneUS: true
},
phone2: {
required: true,
phoneUS: true
},
street: {
required: true
},
city: {
required: true
},
state: {
required: true
},
zip: {
zipcodeUS: true
}
},
highlight: function(element) {
$(element).closest('.style9').addClass('.style13');
//$(element).addClass('.style13');
},
unhighlight: function(element) {
$(element).closest('.style9').removeClass('.style13');
//$(element).removeClass('.style13');
},
errorElement: 'span',
errorClass: 'style13',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
我遇到上面列出的错误。我做错了什么?
尝试
jQuery(document).ready(function(){
$('form').validate({
rules: {
first_name: {
minlen: 3,
maxlength: 15,
required: true
},
last_name: {
minlength: 3,
maxlength: 15,
required: true
},
email: {
required: true,
email: true
},
phone1: {
required: true,
phoneUS: true
},
phone2: {
required: true,
phoneUS: true
},
street: {
required: true
},
city: {
required: true
},
state: {
required: true
},
zip: {
zipcodeUS: true
}
},
highlight: function(element) {
$(element).closest('.style9').addClass('.style13');
//$(element).addClass('.style13');
},
unhighlight: function(element) {
$(element).closest('.style9').removeClass('.style13');
//$(element).removeClass('.style13');
},
errorElement: 'span',
errorClass: 'style13',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
});
将minlen
替换为minlength
,有效,没有minlen
属性,所以call
内部失败
$('form').validate({
rules: {
first_name: {
minlength: 3, // <- here
maxlength: 15,
required: true
},
last_name: {
minlength: 3,
maxlength: 15,
required: true
},
..........
一般来说,如果您设置了无效的 jQuery 验证规则,则可能会引发此错误。
您可以使用 this link.
$(document).ready(function() {
jQuery.validator.addMethod("noSpace", function(value, element){
return value.indexOf(" ")<0 && value !=="";
}, "Space are not allowed");
});
确保您没有包含两次 jQuery 验证脚本。 我已经完成了这个,我已经将它包含在布局和创建视图中,这就产生了问题。我从创建视图中删除了它。