我总是收到错误
Uncaught TypeError: Cannot call method 'call' of undefined
当我在表单中输入正确的电子邮件时。定制按摩也不起作用。
函数?module=auth&action=registration
正常工作(它返回字符串'false'或'true')。
我使用此插件:JQuery Validation Plugin。
我认为问题出现在以下文件中。
custom.validation.js :
$(document).ready(function() {
$("#reg").validate({
rules: {
'u1[firstName]': "required",
'u2[firstName]': "required",
'u1[lastName]' : "required",
'u2[lastName]' : "required",
'u1[email]' : {
"required" : true,
"email" : true,
"remote" : {
url: '?module=auth&action=checkemail',
type: "post",
data:
{
'u1[email]': function()
{
console.log($("#email1").val());
return $("#email1").val();
}
}
},
'u2[email]' : "required"
},
messages: {
'u1[firstName]': {
required: "My requied text"
}
}
}
});
});
和表单:
<fieldset>
<label for="imie" >Name:</label>
<input type="text" name="u1[firstName]"{if $smarty.post.u1.firstName} value="{$smarty.post.u1.firstName}"{/if}>
<label for="nazwisko" >Lastname:</label>
<input type="text" name="u1[lastName]" {if $smarty.post.u1.lastName} value="{$smarty.post.u1.lastName}"{/if}>
<label for="adresEmail">E-mail:</label>
<input type="text" name="u1[email]" id="email1" {if $smarty.post.u1.email} value="{$smarty.post.u1.email}"{/if}>
</fieldset>
<fieldset>
<button type="submit">Send</button>
</fieldset>
答案 0 :(得分:3)
messages
是一个独立的选项,但您不小心将放在rules
的中,这会破坏插件。
修复此语法后似乎没有错误。 (顺便说一句,当代码正确缩进和标签时,代码更容易排除故障。)
DEMO:http://jsfiddle.net/sERPT/
$(document).ready(function () {
$("#reg").validate({
rules: {
'u1[firstName]': "required",
'u2[firstName]': "required",
'u1[lastName]': "required",
'u2[lastName]': "required",
'u2[email]': "required",
'u1[email]': {
required: true,
email: true,
remote: {
url: '?module=auth&action=checkemail',
type: 'post',
data: {
'u1[email]': function () {
console.log($("#email1").val());
return $("#email1").val();
}
}
}
}
},
messages: {
'u1[firstName]': {
required: "My requied text"
}
}
});
});