2011-09-10 43 views
2

我有一個關於在jQuery的驗證方法和添加一條規則,它的問題,所以說我有:jQuery的驗證規則不工作的嵌套的HTML標記

$("#myform").validate({ 
    rules: { 
    zip: { 
    field: { 
     required: true, 
     maxlength: 5, 
    } 
    } 
}); 

現在我的表格佈局是這樣的:

<body> 
<div> 
<form id="myform"> 
<label> 
    <span>label</span> 
    <input name="zip" type="text" id="zip" class="required" size="50"> 
</label> 

<label> 
     //some stuff here 
</label> 
</form> 
</div> 
</body> 

問題是爲什麼驗證沒有在zip中執行?當我只在文本框內輸入文本而沒有別的功能時,它就可以工作。

回答

1

編輯:

我只是審查你鏈接的站點和JQuery驗證&委託的插件都扔403的在您的網站上(http://adityaherlambang.com/)。更新這些腳本的URL引用,你應該很好去。

驗證:http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js

原文:

看起來你的驗證JS是有點過。嘗試使用:

$("#myform").validate({ 
    rules: { 
    zip: { 
     required: true, 
     maxlength: 4 
    } 
    } 
}); 

相關小提琴:http://jsfiddle.net/gp4vB/

+0

嘗試了你的建議,但它沒有工作 – aherlambang

+0

我更新了這個小提琴,以包括您的網站上的完整形式: http://jsfiddle.net/gp4vB/2/ 如果它仍然無法正常工作,您是否在chromes/firebugs開發者控制檯中收到錯誤? – Jesse

+0

如果您訪問上面的鏈接,它實際上是否驗證? – aherlambang

1

您沒有關閉Zip輸入標籤。它應該如下:

所有的
<input name="zip" type="text" id="zip" class="required" size="50" /> 
1

首先你不能把inputlabel內。應該舉辦這樣的:

<label for="cname">Name</label> 
<input type="text" id="cname" name="cname" /> 

然後閉上你的input標籤

<input name="zip" type="text" id="zip" class="required" size="50" /> 

    $(document).ready(function() { 
     $("#myform").validate({ 
      rules: { 
       zip: { 
        required: true, 
        maxlength: 4 
       } 
      } 
     }); 
    }); 
+0

爲什麼不能把你輸入標籤裏面? – aherlambang

+0

是的,對不起,你是對的。剛剛檢查[W3C](http://www.w3.org/wiki/HTML/Elements/label) – Samich