我在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完成它。我错过了什么?好心提醒。
谢谢。
答案 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 %>');
祝你好运。