使用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来完成它。我错过了什么?请告知。
谢谢。
虽然从技术上讲,您所做的应该是有效的,但您可以避免引用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 %>');
祝你好运。