2010-10-21 132 views
1

我每天都會使用這個腳本,現在從來沒有問題。我一直盯着它,只要我找不到問題。我有一個帶有輸入的表單,輸入是必需的,最小長度爲2.如果提交表單,它會顯示「必需的」錯誤消息。如果您輸入一個字符並再次點擊提交,則會添加另一個錯誤消息,而不是在兩者之間進行更改。請幫助!這是用jquery.validate.jsjquery驗證錯誤問題

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#TTFirst").validate({ 
      errorElement: "span", 
      errorPlacement: function(error, element) { 
       error.appendTo(element.parent("td")); 
      }, 

      rules: { 
        license: { 
        required: true, 
        minlength: 2 
       } 
      }, 

      messages: { 
       license: { 
        required: "Please Enter Your First Name", 
        minlength: "Must be at Least 2 Characters" 
       } 

      } 


     }); 

    }); 

</script> 

HTML

<table cellspacing="1" id="credits"> 
    <form action="http://www.domain.com/dir/processor.php" method="post" id="TTFirst"> 
    <table> 
    <tr class="odd"> 
    <td width="500"> 
     <label>$25 Transaction Credit for License </label> 
      <input type="text" name="license" /> 
    </td> 
    <td width="50">$26.95</td> 
    <td width="150"> 
     <input type="hidden" name="item_number" value="41"> 
     <input type="submit" value="" class="orderNow" /> 
    </td> 
     </tr> 
    </table> 
</form> 
+0

嘗試'element.parent(「td」)。append(error);',有什麼區別? – 2010-10-21 19:21:49

+0

不行,仍然在做同樣的事情。男人奇怪,從來沒有問題之前 – 2010-10-21 19:23:25

+0

@尼克它似乎並沒有驗證關鍵或模糊,只是在提交 – 2010-10-21 19:28:13

回答

2

曾經見過的最悲慘的事情。它工作正常時,把一個

<ul> 

東西與表我猜。

+0

-1。請使用評論,以及評論。 – SolutionYogi 2010-10-21 20:03:03

+0

@解決方案瑜珈 - 我用「回答我自己的問題」,因爲我呃回答了我自己的問題。感謝您對此進行監督,您的時間非常感謝。 – 2010-10-21 20:05:45

+0

撤消我的投票。我看到你編輯了包含你的修復。你原來的回答沒有意義,我以爲你只是在咆哮。 – SolutionYogi 2010-10-21 20:22:26

0

因爲你使用的是自定義errorPlacement,它看起來就像是通過將郵件標題進行郵件的技術有問題的標籤的屬性,而不是在javascript中。檢查這個示例代碼。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
       "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<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(){ 
    $("#myform").validate({ 
    errorPlacement: function(error, element) { 
    error.appendTo(element.parent("td").next("td")); 
    }, 
    debug:true 
    }) 
    }); 
</script> 
</head> 

<body> 
    <form id="myform" action="/login" method="post"> 
    <table> 
    <tr> 
     <td><label>Firstname</label> 
     <td><input name="fname" class="required" value="Pete" /></td> 
     <td></td> 
    </tr> 
    <tr> 
     <td><label>Lastname</label></td> 
     <td><input name="lname" title="Your lastname, please!" class="required" /></td> 
     <td></td> 
    </tr> 
    <tr> 
     <td></td><td><input type="submit" value="Submit"/></td><td></td> 
</table> 
</form> 
</body> 
</html> 

從例子中的誤差僅示出了當輸入lname是空的,並且從title屬性拉動。

+0

你能給我一個例子嗎?我沒有碰到這個,並一直使用代碼 – 2010-10-21 19:26:32

+0

我把它放回去;我在窗體上使用了'errorLabelContainer',這是有道理的。它看起來像使用自定義錯誤,你應該在表單輸入的title屬性中定義錯誤消息,而不是在javascript消息中定義錯誤消息。給那一槍。 – 2010-10-21 19:49:17

+0

??? http://docs.jquery.com/Plugins/Validation/validate#toptions請參閱消息部分 – 2010-10-21 19:51:20