4

我总是出错

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>

4

1 回答 1

3

messages是一个独立的选项,但你不小心把它放在里面rules这会破坏插件。

修复此语法后,它似乎可以正常工作。(顺便说一句,正确缩进和制表符后,代码更容易排除故障。)

演示: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"
            }
        }
    });

});
于 2013-03-25T22:01:07.687 回答