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

时间:2015-07-24 03:24:25

标签: javascript c# asp.net

我在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完成它。我错过了什么?好心提醒。

谢谢。

5 个答案:

答案 0 :(得分:0)

虽然从技术上讲你正在做的事情应该可行,但你可以通过在ddlActiveStatus控件上直接添加ClientIDMode =“Static”来避免在JavaScript中引用ddlActiveStatus.ClientID。

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

$rooms = array('' => 'Select Room') + $rooms;

答案 1 :(得分:0)

ASP有时会更改ID。像这样在元素中添加“名称”:

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

然后使用:var x = document.getElementsByName(“DdlActiveStatus”);

或者,您可以使用jquery: $( '[名称= “DdlActiveStatus”]')doStuff();

答案 2 :(得分:0)

$('#ddlActiveStatusoption').val()

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

答案 3 :(得分:0)

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

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

onchange = "dconfirm(this.value)"

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

function dconfirm(values)
{
    alert(values);

    if (values == 'Y')
    {
        //do something
    }
}

这对我有用。希望能帮助到你。

谢谢你们的回复,欢呼。

答案 4 :(得分:0)

对我来说简单的方法是

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

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

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

祝你好运。

相关问题