2009-06-27 90 views
2

我使用的jQuery Validation plugin,並有驗證是在div嵌套在我的表單項目的問題:如何使用jQuery Validate插件驗證多個div的表單?

<form id="form1" runat="server"> 
    <div id="theForm"> 
     html <input type="text" class="required date"/> 
     <br /> 
     aspx <asp:TextBox runat="server" CssClass="required" ID="txtone"></asp:TextBox> 
     <br />   
     <div id="subArea"><input type="text" class="required" /></div>  
    </div> 
    <asp:Button runat="server" ID="btnSub" Text="Save" 
      onclick="btnSub_Click"/> 
    </form> 

和我的設置與jQuery是:

<script type="text/javascript"> 
    $(document).ready(function() 
      {      
       $('#<%= Form.ClientID %>').validate(); 
      } 
     ); 

     alert('<%= Form.ClientID %>'); 
    </script> 

最終的結果是前兩個字段的功能與預期相同,但doe中的輸入字段不是。我是否必須對選擇器做一些特別的處理或專門添加該字段?另外,如果我要向dom動態添加字段,我如何將validate()函數再次附加到窗體上,以便包含新的動態輸入字段?

解決

許多SO中房的進入搖滾tvanfosson的神指出,輸入標籤缺乏id和name屬性。一旦我添加他們驗證員工作。 EXTRA酷的是,如果你有一個客戶端模板,身高與技術工作有作爲:

<script type="text/html" id="template"> 
     <# 
      var i;  

      for(i=0; i < 2; i++) 
      { 
       var id="tryit" + i; 
     #> 
      field: <#= id #> <input type="text" class="required" id="<#= id #>" name="<#= id #>"/> 
      <br/> 
     <# 
      }   
     #> 
    </script> 

<form id="form1" runat="server"> 
    <div id="theForm"> 
     html <input type="text" class="required date" id="htmlText" name="htmlText"/> 
     <br /> 
     aspx <asp:TextBox runat="server" CssClass="required" ID="txtone" name="txtone"></asp:TextBox> 
     <br />   
     <div id="subArea"><input type="text" class="required" id="subOne" name="subone"/></div>  
     <div id="newArea"></div> 
    </div> 
    <asp:Button runat="server" ID="btnSub" Text="Save" 
      onclick="btnSub_Click"/> 
    </form> 
    <script type="text/javascript"> 
     $(document).ready(function() 
      { 
       var newHTML = parseTemplate($('#template').html(), {"one" : "one"});     
       $('#newArea').html(newHTML); 

       $('#<%= Form.ClientID %>').validate();    
      } 
     );   

    </script> 

回答

4

你的代碼看起來正確的給我,但我注意到,你的輸入字段沒有名稱。沒有查看validate插件的實際代碼,我不確定這是否會導致問題。您可能想嘗試爲每個字段添加名稱(並在適當的情況下添加id),然後查看您的行爲是否發生了變化。

<input type="text" id="date" name="date" class="required date" /> 
+1

HOLY SNIKEES YOU刻着」 ROCK!我爭先恐後地完成了這個任務,所以我可以跳進車裏,帶着我的家人度假,而你已經死了。多謝,夥計!!! – 2009-06-27 14:06:10

相關問題