2013-03-25 53 views
4

「叫」我總是得到錯誤驗證JQuery的:遺漏的類型錯誤:無法調用未定義

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

您是否嘗試過通過完整的URL,而不僅僅是查詢字符串? – Jerry 2013-03-25 19:39:11

+0

您發佈的HTML與您的jQuery不匹配。 'u2'字段在哪裏?另外,最好發佈_rendered_ HTML,因爲這是它將要查看/使用的唯一客戶端代碼。 – Sparky 2013-03-25 22:00:17

回答

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

}); 
+1

它的作品,非常感謝你!:) – 2013-03-26 07:57:13

相關問題