使用javascript获取ASP下拉列表所选值

本文关键字:下拉列表 ASP javascript 获取 使用 | 更新日期: 2023-09-27 18:04:18

我在asp中有一个下拉列表,如下所示:

<asp:DropDownList ID="ddlActiveStatus" AutoPostBack="True" runat="server" onchange = "dconfirm()" OnSelectedIndexChanged = "ddlActiveStatus_SelectedIndexChanged">
  <asp:ListItem></asp:ListItem>
  <asp:ListItem Value="Y">Y</asp:ListItem>
  <asp:ListItem Value="N">N</asp:ListItem>
</asp:DropDownList>

当用户选择一组不同的值时,我想检索所选索引的值。我有一个这样的代码:

function dconfirm(){
var e = document.getElementById("<%=ddlActiveStatus.ClientID%>");
var selVal = e.options[e.selectedIndex].value;
alert(selVal);}

预期结果是,当用户选择"Y"时,javascript将提醒"Y"。然而,程序不断抛出以下错误:

名称"ddlActiveStatus"在当前上下文中不存在

我想只使用javascript来完成它。我错过了什么?请告知。

谢谢。

使用javascript获取ASP下拉列表所选值

虽然从技术上讲,您所做的应该是有效的,但您可以避免引用ddlActiveStatus。通过直接在ddlActiveStatus控件上添加ClientIDMode="Static",在JavaScript中添加ClientID。

这样做可以让您完全控制为控件生成的ID,因此您可以在JavaScript中简单地使用以下内容:

var e = document.getElementById("ddlActiveStatus");

ASP有时会更改ID。在元素中添加一个"Name",如下所示:

<asp:DropDownList Name="DdlActiveStatus" ID="ddlActiveStatus" AutoPostBack="True" runat="server" onchange = "dconfirm()" OnSelectedIndexChanged ="ddlActiveStatus_SelectedIndexChanged">

然后使用:var x=document.getElementsByName("DdlActiveStatus"(;

或者,您可以使用jquery:$('[name="DdlActiveStatus"]'(.doStuff((;

$('#ddlActiveStatusoption').val()

$('select#ddlActiveStatusoption:selected').val())

我已经找到了解决方法。希望它能帮助那些正在寻找答案的人。

我不会在javascript中获取ddlActiveStatus的选定值,而是通过将以下代码添加到我的dropdownlist属性来传递该值,如下所示:

onchange = "dconfirm(this.value)"

至于我的javascript函数,它将显示用户选择的值。代码如下:

function dconfirm(values)
{
    alert(values);
    if (values == 'Y')
    {
        //do something
    }
}

这对我来说很好。希望能有所帮助。

谢谢大家的回复,干杯。

对我来说最简单的方法是

var VarName = $('#<%=YouDropDownId.ClientId %>').val();

对于您的案例,您忘记了#试试这个,我希望它能起作用

var e = document.getElementById('#<%=ddlActiveStatus.ClientID %>');

祝你好运。