ASP.NET C#中如何用jQuery获取editableSelect选中项ID?
解决editableSelect选中项ID获取显示undefined的问题
问题根源
- 原生
<select>不适用onselect事件,应改用onchange;且editableSelect插件会修改原生控件行为,原生事件绑定方式可能失效。 - 直接通过
$('#cmb_year').attr('value')获取值是错误的:一是ASP.NET带runat="server"的控件客户端ID会动态生成,硬编码cmb_year无法匹配;二是attr('value')只能获取初始值,无法同步选中后的实时值。
修正后的代码
ASPX代码
<select id="cmb_year" runat="server"></select> <script> // 获取真实客户端ID并初始化插件 var $yearSelect = $('#<%=cmb_year.ClientID%>'); $yearSelect.editableSelect(); // 绑定change事件监听选中变化 $yearSelect.on('change', function() { loadCounties(); }); function loadCounties() { // 用val()获取选中项的value(即绑定的Id) var selectedId = $yearSelect.val(); alert(selectedId); } </script>
ASPX.CS代码(无需修改)
service.BindHTMLDropdownList(cmb_year, "tbl_year", "year", "Id", "order by Id desc");
关键说明
- 用
<%=cmb_year.ClientID%>确保获取ASP.NET生成的真实客户端ID,避免选择器失效。 - 使用jQuery的
on('change')绑定事件,适配editableSelect插件的行为,确保选中变化时触发方法。 - 用
val()方法获取选中项的value值,这是获取表单控件实时选中值的标准方式,能正确拿到绑定的Id。
内容的提问来源于stack exchange,提问作者s.k.Soni
相关产品推荐
相关产品推荐

