2013-09-23 140 views
1

我簡單的表單驗證工作與jQuery驗證名稱功能

其實我用jQuery插件來驗證電子郵件地址字段,現在我想把個人驗證爲name場我嘗試了太,但它不起作用,我無法找出背後的問題。

<html> 
<head> 
<meta charset="utf-8"> 
<title>Makes "field" required and an email address.</title> 

<link rel="stylesheet" href="main.css" type="text/css" /> 
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script language="javascript" type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js"></script> 
<script> 
$(function() { 
    $("#myform").validate({ 
      rules: { 
        name: { 
          required: true, 
          minlength: 4, 
          maxlength: 20, 
          customvalidation: true 
        } 
      }, 
      messages: { 
        name: { 
          required: "Dude, enter a name", 
          minlength: $.format("Keep typing, at least {0} characters required!"), 
          maxlength: $.format("Whoa! Maximum {0} characters allowed!") 
        } 
      } 
    }); 
    $.validator.addMethod("customvalidation", 
      function(value, element) { 
        return /^[A-Za-z\d=#$%@_ -]+$/.test(value); 
      }, 
    "Sorry, no special characters allowed" 
    ); 
}); 
</script> 
</head> 

<body> 
<div id="navbar"> 
    <ul id="nav"> 
     <li><a id="clickBack" href="backPage.htm">clickBack</a></li> 
     <li><a id="clickForward" href="forwardPage.htm">goForward</a></li> 
    </ul> 
</div><br><br> 
<label for="field"> Name: </label> 
<input class="left" id="name" name="name" minlength="4" class="required name"/> 
<br/> 
<form id="myform" method="post" action=""> 
<label for="field">Email: </label> 
<input class="left" id="field" name="field" /> 
<br/> 
<input type="submit" value="Submit"> 
</form> 
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script> 
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script> 
<script> 
jQuery.validator.setDefaults({ 
debug: true, 
success: "valid" 
}); 
$("#myform").validate({ 
rules: { 
field: { 
required: true, 
email: true 
} 
} 
}); 

</script> 

</body> 
</html> 

需要一些指導......謝謝。

+1

你是什麼意思是「它不工作」不..你可以更具體嗎? – coder

+0

它不驗證名稱字段,但電子郵件字段是好的,它正在驗證中。 – lost

+0

我認爲在必填字段中它應該是真或假,並且您已在此處提供了字符串。 – coder

回答

3

嘗試,如果你想定製驗證你可以試試這個使用這個最好的jQuery驗證plugin

username: { 
     required: true, 
     minlength: 2 
     }, 

messages: { 
     username: { 
     required: "Please enter a username", 
     minlength: "Your username must consist of at least 2 characters" 
     }, 

$.validator.addMethod("customvalidation", function(value, element) { 
     return this.optional(element) || /^[a-z0-9\-]+$/i.test(value); 
    }, "Username must contain only letters, numbers, or dashes."); 
+0

它工作:)謝謝你這個提示! – Nekto

+0

烏拉圭歡迎...高興它幫助你:) – coder

1

嗨幾個點,這可能有助於這項工作:

  • 嘗試使用不是「保留」或含糊的標識(因爲name已經是t的屬性他認爲這可能會引起誤解。當我的腳本在我身邊工作時,它可以與例如id="firstName"一起工作。但不id="name"
  • 確保您驗證元素是你正在運行的驗證(代碼樣本中的形式,名稱元素坐在外面myform
  • 將二者結合起來$("#myform").validate(...)方法在兩個不同腳本塊,你並不需要一個單獨的一個電子郵件地址和姓名,你可以列出他們在一起!

希望幫助,祝你好運!

+0

是啊我想結合這兩個,但即使如此,它將無法正常工作.... :( 如何做到這一點..? – lost

+1

試試這個...... http ://jsfiddle.net/M2SPw/ –