2012-04-25 135 views
0

我試圖做的一切,我讀了..但jQuery驗證不會發生在我提交表單時。這裏是我的jQuery:jQuery驗證失敗工作

(function ($) { 

$('#registrationForm').validate({ 
    rules: { 
     username: { 
      required: true, 
      minlength: 4 
     }, 
     fullname: { 
      required: true, 
      minlength: 4 
     }, 
     email: { 
      required: true, 
      minlength: 4, 
      email: true 
     }, 
     retype_email: { 
      required: true, 
      minlength: 4, 
      email: true, 
      nameField: { notEqual: "email" } 
     }, 
     password: { 
      required: true, 
      minlength: 4 
     }, 
     retype_password: { 
      required: true, 
      minlength: 4, 
      nameField: { notEqual: "password" } 
     }, 
     url: "url", 
     comment: "required" 
    }, 

    messages: { 
     username: { 
      required: "Please fill your name", 
      minlength: "The name is too short" 
     }, 
     fullname: { 
      required: "Please fill your surname", 
      minlength: "Your surname is too short" 
     }, 
     email: { 
      required: "Please fill your email", 
      minlength: "Your email is too short", 
      email: "Invalid email" 
     }, 
     retype_email: { 
      required: "Please retype your email", 
      minlength: "Your email is too short", 
      email: "This is an invalid email", 
      nameField: "Your email doesnt match the email above" 
     }, 
     password: { 
      required: "Please fill in your password", 
      minlength: "The password is too short" 
     }, 
     retype_password: { 
      required: "Please retype your password", 
      minlength: "The password is too short", 
      nameField: "Your password doesnt match the password above" 
     } 
    }, 
    submitHandler: function (form) { 
     $(form).ajaxSubmit(); 
    }, 
    invalidHandler: function (e, validator) { 
     var errors = validator.numberOfInvalids(); 
     if (errors) { 
      var messages = errors == 1 
      ? 'You have missed 1 field. It has been highlighted below' 
      : 'You missed ' + errors + 'fields. They have been highlighted below'; 
      $("div.errors span").html(message); 
      $("div.error").show(); 
     } 
     else { 
      $("div.error").hide(); 
     } 
    } 
}); 

jQuery.validator.addMethod("notEqual", function (value, element, param) { 
    return this.optional(element) || value != param; 
}, "Please specify a different (non-default) value"); 

})(jQuery); 

這裏是我的html:

<form action="" method="post" id="registrationForm" > <table> 

    <tr> 

     <td> 

      Sign up 

     </td> 

    </tr> 

    <tr> 

     <td> 

      <input class="required" id="username" name="username" title="User name" type="text" value="" /> 

     </td> 

    </tr> 

    <tr> 

     <td> 

      <input class="required" id="fullname" name="fullname" title="Full name" type="text" value="" /> 

     </td> 

    </tr> 

    <tr> 

     <td> 

      <input class="required" id="email" name="email" title="Email address" type="text" value="" /> 

     </td> 

    </tr> 

    <tr> 

     <td> 

      <input class="required" id="retype_email" name="retype_email" title="Retype email" type="text" value="" /> 

     </td> 

    </tr> 

    <tr> 

     <td> 

      <input class="required" id="password" name="password" title="Password" type="text" value="" /> 

     </td> 

    </tr> 

    <tr> 

     <td> 

       <input class="required" id="retype_password" name="retype_password" title="Retype password" type="text" value="" /> 

      </td> 

     </tr> 
</table> 
<input type="submit" name="register" value="Sign up" /> 
</form> 

我在做什麼錯,爲什麼形式submited並沒有每當所有字段爲空出的錯誤?

UPDATE:

Uncaught TypeError: Object [object Object] has no method 'validate'

+0

你忘了ID爲形式 – Dhiraj 2012-04-25 12:47:29

+0

如果你正在編輯的東西,請通知像這樣編輯:一些騙局帳篷編輯 – srini 2012-04-25 12:57:59

+0

我只編輯了一行.. – 2012-04-25 12:58:13

回答

0

我希望這是你想要的。

DEMO

  1. 錯字:在invalidHandler聲明的變量是消息,但在$("div.errors span").html(messages);被使用的消息
  2. retpye_passwordretype_email改變namefieldequalTo
+0

我認爲這是一個CSS問題。可能是我應該將錯誤轉移到容器中 – 2012-04-25 13:15:59

+0

我認爲我將不得不接受你的答案,導致演示工作..我認爲這是我的CSS螺絲! – 2012-04-25 13:17:12