我有多个具有相同类名的标签。然后我有一个函数循环所有带有这个类名的标签并隐藏/显示这些。
问题:我在这个标签中有多个控件,我想重置所有这些控件,如果它被隐藏。但我可以在其中找到所有控件的集合。
... HELP !!!!
示例代码:
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">
</td>
<td class="numberColumnNoBold">
</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">
</td>
<td class="numberColumnNoBold">
</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">
</td>
<td class="numberColumnNoBold">
</td>
<td colspan="2">
test3:<br />
<asp:TextBox ID="textboxSt1" runat="server" TextMode="MultiLine" Rows="3" Columns="100" /></td>
</tr>
</table>
</td>
</tr>
答案 0 :(得分:2)
您应该包含您的HTML,因此我们可以100%确定您获得了所需的答案。但是只有你的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使用了错误的选择器
答案 1 :(得分:1)
使用jquery查找tr(针对特定css类)中的所有控件, 只需使用:
$('tr .YourClassName');