好的我已经检查了几个解决方案并没有运气。我到底做错了什么。我可以从check_controls中检索ID,执行警报onload而不是更改
<asp:CheckBox ID="chkAutoReverse" runat="server" CssClass="" Width="200px"
Text="Auto Reverse:" TextAlign="Right" AutoPostBack="false" />
$(document).ready(function() {
var check_controls = $('input[id*=chkAutoReverse]');
var AutoReverseOptions = document.getElementById('AutoReverseOptions');
$(check_controls).change(function() {
if ($(this).is(':checked')) {
alert($(check_controls).attr("id"));
} else {
alert($(AutoReverseOptions).attr("id"));
}
});
});
额外的html标记
<div style="height: 60px">
<div class="singlepanelcontentleft">
<asp:CheckBox ID="chkAutoReverse" runat="server" CssClass="" Width="200px" Text="Auto Reverse:"
TextAlign="Right" AutoPostBack="false" /></div>
<div id="AutoReverseOptions" class="singlepanelcontentleft" style="display: none;">
<asp:RadioButtonList ID="optTabs" runat="server" RepeatDirection="Horizontal" RepeatLayout="Table"
Width="91%" Height="22px">
<asp:ListItem Text="Next Period" Value="1" Selected="true"></asp:ListItem>
<asp:ListItem Text="2 Periods from Now" Value="2"></asp:ListItem>
<asp:ListItem Text="3 Periods from Now" Value="3"></asp:ListItem>
</asp:RadioButtonList>
</div>
</div>
这嵌套在其他div和fieldset中。粘贴其他代码并不能很好地呈现
答案 0 :(得分:1)
您应该使用以下内容引用asp.net ID:
<%= chkAutoReverse.ClientID %>
答案 1 :(得分:0)
引用ClientID
或设置ClientIDMode
:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx
答案 2 :(得分:0)
收听复选框可以更好地处理点击事件而不是更改事件。
属性选择器需要用引号括起来:
var check_controls = $('input[id*="chkAutoReverse"]');
答案 3 :(得分:0)
好的,我找到了答案。您可以获取详细信息here。它简化了更新面板中的控件,并且在面板加载时没有重新订阅jQuery事件。