2009-06-27 11 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の入力フィールドは正しくありません。セレクタに特別なことをしたり、フィールドを特別に追加する必要がありますか?また、動的にフィールドを追加する場合、新しい動的入力フィールドを含めるために、validate()関数をフォームに再度追加する方法はありますか?

はinputタグにidとname属性を欠いていたことを指摘してロックtvanfossonの神に

多くのSOクレドの行くを解決しました。私がそれらを追加するとバリデーターが働きました。

<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

あなたのコードは、私には正しいように見えますが、私はあなたの入力フィールドが名前を持っていないことに気づく:EXTRAクールなあなたは、クライアント側のテンプレートを持っている場合、techinqueはそこにも動作することです。 validateプラグインの実際のコードを見ずに、これが問題を引き起こすかどうかはわかりません。各フィールドの名前(必要に応じてid)を追加して、動作が変更されているかどうか確認してください。

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

HOLY SNIKEES YOU FREAKIN」ROCK !!!私はこれを完了するためにスクランブルをするので、車に乗って休暇中に私の家族を連れて、あなたは死んでしまった。ありがとう、相棒!!! –

関連する問題