You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET C#中通过JavaScript获取下拉框选中值失败的问题求助

解决ASP.NET下拉框选中值获取问题

核心问题在于你使用的是带runat="server"的ASP.NET服务器控件,客户端渲染时的ID会被自动修改,同时你混淆了原生JavaScript和jQuery的调用方法,导致无法正确获取选中值。

正确实现方式

1. 原生JavaScript写法

通过<%= cmb_labelno.ClientID %>获取控件真实的客户端ID,再用原生JS的.value属性取值:

$("#btnGetStock").click(function (e) {               
    var dropdown = document.getElementById('<%= cmb_labelno.ClientID %>');
    alert(dropdown.value);
});

2. jQuery写法

使用jQuery选择器定位控件,调用.val()方法(注意是带括号的方法,不是属性):

$("#btnGetStock").click(function (e) {               
    alert($('#<%= cmb_labelno.ClientID %>').val());
});

3. 简化方案:固定客户端ID

给下拉框添加ClientIDMode="Static"属性,让客户端ID和服务器端ID保持一致:

<select id="cmb_labelno" runat="server" ClientIDMode="Static"></select>

之后可以直接用原ID取值:

$("#btnGetStock").click(function (e) {               
    // 原生JS
    alert(document.getElementById('cmb_labelno').value);
    // jQuery
    alert($('#cmb_labelno').val());
});

你之前代码的问题

  • 直接用document.getElementById('cmb_labelno'):ASP.NET自动生成了客户端ID,这个选择器无法找到目标元素,自然取不到值。
  • 用document.getElementById('cmb_labelno').val:val是jQuery的方法,原生JS没有这个属性,正确写法是.value。
  • 你写的document.getElementById('<%= cmb_labelno.ClientID %>').value本身逻辑正确,但可能未放在正确的执行时机(比如页面DOM未加载完成时执行),或者没有绑定到点击事件中。

内容的提问来源于stack exchange,提问作者s.k.Soni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:42:34