0

同じクラス名のタグが複数あります。次に、このクラス名のすべてのタグをループして、これらを非表示/表示する関数があります。

問題:このタグ内に複数のコントロールがあり、これが非表示になった場合はこれらすべてのコントロールをリセットしたいと思います。しかし、私はこの中にすべてのコントロールのコレクションを見つけることができます。

ヘルプ...!!!!

サンプルコード:

function toggleRows(rowClass, value, max) { 
        $("." + rowClass).each( 
        // For each element which a class of rowClass, run this code. 
        function () { 
            var rowNumber = parseInt($(this).attr("rowNumber")); 

            //If the specified value is >= the row number, then show the row, else hide it. 
            if (value >= rowNumber) { 
                $(this).show(); 
            } 
            else { 
                $(this).hide(); 
                var frm = $(this).children(); 
                for (i = 0; i < frm.elements.length; i++) {   
                 if (frm.elements[i].type == "checkbox") { 
                        frm.elements[i].checked = false; 
                    } 
                    if (frm.elements[i].type == "radio") { 
                        frm.elements[i].checked = false; 
                    } 
                    if (frm.elements[i].type == "text") { 
                        frm.elements[i].value = ""; 
                    } 
                    if (frm.elements[i].type == "select") { 
                        frm.elements[i].value = 0; 
                    } 
                } 
            } 
        }); 


    <tr id="id1" runat="server" class="rowClass"  rownumber="1"> 
 <td> 
    <table width="100%"> 
       <tr> 
           <td runat="server" enableviewstate="False" id="td1" class="numberColumn"> 
                &nbsp; 
            </td> 

           <td class="numberColumnNoBold"> 
                &nbsp; 
             </td> 
          <td> 
              test1 
          </td> 
          <td align="right"> 
             $ 
          <asp:TextBox ID="textbox1" runat="server" CssClass="textthinnumeric" /> 

              </td> 
                     </tr> 
           <tr> 
       <td runat="server" enableviewstate="False" id="tdS1" class="numberColumn"> 
                &nbsp; 
          </td> 
       <td class="numberColumnNoBold"> 
               &nbsp; 
       </td> 
       <td> 
             test2 
       </td> 
      <td align="right"> 
               <asp:RadioButtonList ID="rbl1" runat="server" RepeatDirection="Horizontal"> 
                <asp:ListItem Value="Yes" Text="Yes" /> 
                <asp:ListItem Value="No" Text="No" />    </asp:RadioButtonList>                                                                                           </td> 
      </tr> 
       <tr> 
           <td runat="server" enableviewstate="False" id="tdS21" class="numberColumn"> 
                 &nbsp; 
            </td> 
           <td class="numberColumnNoBold"> 
                   &nbsp; 
            </td> 
            <td colspan="2"> 
                test3:<br /> 
             <asp:TextBox ID="textboxSt1" runat="server" TextMode="MultiLine" Rows="3" Columns="100" /></td> 
           </tr> 
      </table> 
   </td> 
 </tr>
4

2 に答える 2

2

希望する答えが得られることを100%確信できるように、HTMLを含める必要があります。ただし、JSだけでも、jQueryをさらに活用できるポイントがいくつかあります。

function toggleRows(rowClass, value, max) { 
    $("." + rowClass).each(function () { 
        var row = $(this),
            rowNumber = row.index(); 

        row.toggle(value >= rowNumber);

        if (!row.is(':visible')) {
            row.find('input[type="checkbox"]').prop('checked', false);
            row.find('input[type="radio"]').prop('checked', false);
            row.find('input[type="text"]').val('');
            row.find('select').val('0');
        } 
    }); 

編集:ddlに間違ったセレクターを使用しました

于 2012-09-20T08:26:22.323 に答える
1

jquery を使用して tr (特定の css クラスの) 内のすべてのコントロールを見つけるには、次のようにします。

$('tr .YourClassName');
于 2012-09-20T08:34:10.773 に答える