我在頁面上有兩個單選按鈕列表和一個checkboxlist。理想情況下,基於複選框選定的值,我想啓用/禁用相應的與jquery函數radibuttonlist。jquery按名稱動態獲取單選按鈕列表
但是一些$(「input [name * =」+ columnName +「]」)總是返回null。它無法通過名字找到單選按鈕?
$(function() {
function checkBoxClicked() {
var isChecked = $(this).is(":checked");
var columnName = "rblColumn" + $(this).parent().attr("alt");
if (isChecked) {
$("input[name*=" + columnName + "]").removeAttr("disabled");
} else {
$("input[name*=" + columnName + "]").attr("disabled", "disabled");
$("input[name*=" + columnName + "] input").each(function() {
$(this).attr("checked", "")
});
}
}
//intercept any check box click event inside the #list Div
$(":checkbox").click(checkBoxClicked);
});
<asp:Panel ID="TestPanel" runat="server">
<asp:CheckBoxList ID = "chkColumn" runat="server" RepeatDirection="Horizontal">
<asp:ListItem id = "Column1" runat="server" Text="Column 1" Value="1" alt="1" class="HeadColumn" />
<asp:ListItem id = "Column2" runat="server" Text="Column 2" Value="2" alt="2" class="HeadColumn"/>
</asp:CheckBoxList>
<table>
<tr>
<td>
<asp:RadioButtonList ID = "rblColumn1" runat="server" RepeatDirection="Vertical" disabled="disabled">
<asp:ListItem id="liColumn1p" runat="server" />
<asp:ListItem id="liColumn1n" runat="server" />
</asp:RadioButtonList>
</td>
<td>
<asp:RadioButtonList ID = "rblColumn2" runat="server" RepeatDirection="Vertical" disabled="disabled">
<asp:ListItem id="liColumn2p" runat="server" />
<asp:ListItem id="liColumn2n" runat="server" />
</asp:RadioButtonList>
</td>
</tr>
</table>
</asp:Panel>
來源:
<div id="TestPanel">
<table id="chkColumn" border="0">
<tr>
<td><span id="Column1" alt="1" class="HeadColumn"><input id="chkColumn_0" type="checkbox" name="chkColumn$0" /><label for="chkColumn_0">Column 1</label></span></td><td><span id="Column2" alt="2" class="HeadColumn"><input id="chkColumn_1" type="checkbox" name="chkColumn$1" /><label for="chkColumn_1">Column 2</label></span></td>
</tr>
</table>
<table>
<tr>
<td>
<table id="rblColumn1" class="myRadioButtonList" disabled="disabled" border="0">
<tr>
<td><span id="liColumn1p"><input id="rblColumn1_0" type="radio" name="rblColumn1" value="" /></span></td>
</tr><tr>
<td><span id="liColumn1n"><input id="rblColumn1_1" type="radio" name="rblColumn1" value="" /></span></td>
</tr>
</table>
</td>
<td>
<table id="rblColumn2" class="myRadioButtonList" disabled="disabled" border="0">
<tr>
<td><span id="liColumn2p"><input id="rblColumn2_0" type="radio" name="rblColumn2" value="" /></span></td>
</tr><tr>
<td><span id="liColumn2n"><input id="rblColumn2_1" type="radio" name="rblColumn2" value="" /></span></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
你能後的標記?很難診斷爲什麼一個選擇器不匹配沒有看到它不匹配:) – 2010-06-11 14:07:25
我們可以看到一些html – 2010-06-11 14:08:26
您需要包括**生成的** HTML。忽略所有的服務器端代碼(ASP.NET,JSF/JSP,不管),它對於JavaScript/jQuery來說是不相關的和不可見的。在網頁瀏覽器中打開該頁面,右鍵單擊並選擇*查看源代碼*。這是JS/jQuery可以看到/訪問的真正的HTML。在這裏複製粘貼它。 – BalusC 2010-06-11 14:15:24