2010-09-21 59 views
5

我是JQuery和驗證插件的新手。使用JQuery驗證插件獲取重複錯誤消息

簡要說明:我希望所有的錯誤消息都出現在表單頂部的一個div中,而不是每個標籤旁邊。經過一點頭部劃痕和網絡搜索之後,我想出了以下內容,這很有效,但sourceurl:消息在驗證中出現了兩次。我不知道爲什麼。任何幫助,將不勝感激。

<form name="siteauth" id="siteauth" action="savedata" type="POST"> 
    <div class="message"></div> 
    <fieldset> 
     <label>Short Description:</label> 
     <br><input id="shortdescription" size="75" type="text" maxlength="50" name="shortdescription"/> 
     <br><label>Source URL:</label> 
     <br><input id ="sourceurl" size="75" type="text" maxlength="500" name="sourceurl"/> 
     <br><label>Callback URL:</label> 
     <br><input id="callbackurl" size="75" type="text" maxlength="500" name="callbackurl"/> 
     <br><label>Callback Content:</label> 
     <br><input id="in4" size="75" type="text" maxlength="100" name="callbackcontent"/> 
     <br> 
     <br><input type="submit" value="Add"/> 
    </fieldset> 
</form> 

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script> 


<script> 

    $(document).ready(function(){ 
     $("#siteauth").validate({ 
      rules: { 
       shortdescription: "required", 
       sourceurl: "required" 
      }, 
      messages: { 
       shortdescription: "Enter a short description. ", 
       sourceurl: "Enter a Source URL. " 
      }, 
      errorElement: "div", 
      wrapper: "div class=\"message\"", 
      errorPlacement: function (error, element){ 
       error.appendTo($(".message")); 
      } 
     }); 

    }); 

回答

0

使用類使用ID屬性代替: 乾杯, 約翰

源代碼。
例如 <div class="message" id="errmsg"></div>並更改Jquery的行成
errorPlacement: function (error, element) { error.appendTo($("#errmsg")); }

活生生的例子Here

3

這是因爲你給全班同學的錯誤元素中的包裝一樣,所以這樣的:

wrapper: "div class=\"message\"", 

應該只是:

wrapper: "div", 

然後它不會將它附加到頂部容器它在裏面創建的元素。 You can give it a try here


上述工作,但更好的方法是沒有任何錯誤使用預定屬性,errorLabelContainer,其也示出/自動隱藏我有/,這樣的:

$(function(){ 
    $("#siteauth").validate({ 
     rules: { 
      shortdescription: "required", 
      sourceurl: "required" 
     }, 
     messages: { 
      shortdescription: "Enter a short description. ", 
      sourceurl: "Enter a Source URL. " 
     }, 
     errorElement: "div", 
     wrapper: "div", 
     errorLabelContainer: ".message" 
    }); 
});​ 

Give that version a try here

+0

謝謝。這解決了它。順便說一下,是否有另一個JQuery文檔之外的插件文檔來源。我經常發現這個插件的JQuery文檔被破壞了。 – John 2010-09-21 12:12:59

+0

@John - 主要來源是:http://docs.jquery.com/Plugins/Validation最近他們一直致力於升級doc/api網站,現在應該會更穩定。還記得如果他們解決你的問題,接受答案:) – 2010-09-21 12:17:28

相關問題