2009-06-27 87 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

相关问题