我一直在尝试从下拉列表中获取所选项目值,但似乎它无法正常工作。我已经查看了其他主题,我知道这个questino已被多次询问但我需要帮助。我使用了以下代码部分:
$('ddlWorkHourFact option:selected').val()
但它让我“未定义”,我不知道为什么。 这是我的下拉列表
<asp:DropDownList ID="ddlWorkHourFact" runat="server">
<asp:ListItem Value="7" Text="7">7</asp:ListItem>
<asp:ListItem Value="8" Selected="True" Text="8">8</asp:ListItem>
<asp:ListItem Value="9" Text="9">9</asp:ListItem>
</asp:DropDownList>
答案 0 :(得分:13)
首先,确保HTML代码中存在ID ddlWorkHourFact。 ASP.NET经常创建这样的东西:ctl1_ddlWorkHourFact。你可以使用
ClientIDMode="Static"
避免这个问题。之后
$('#ddlWorkHourFact').val()
应该足够了。
答案 1 :(得分:6)
KTT,
如果要将控件放在内容等中,则需要了解ASP.NET将在客户端生成不同的ID。这样做是因为客户端的ID应该是唯一的。如果您使用的是ASP.NET 4.0,则可以执行Remy告诉您的操作。
如果您不使用ASP.NET 4.0,则不能这样做,但您可以在jquery中执行“解决方法”。
function GetClientID(id, context) {
var el = $("#" + id, context);
if (el.length < 1)
el = $("[id$=_" + id + "]", context);
return el;
}
有关此代码的详细信息,请访问here。
然后,您只需要执行以下操作:GetClientID(“txtboxId”)。attr(“id”)以获取ID。
$("#" + GetClientID("ddlWorkHourFact").attr("id") + " option:selected").val();
这只是一个例子,你可以改进代码。
编辑:
如果你在同一个控制页面中这样做,你也可以使用这样的东西。
$('#<%= ddlWorkHourFact.ClientID %> option:selected').val();
答案 2 :(得分:5)
尝试$('#ddlWorkHourFact :selected').val()
好像你错过了哈希“#”符号...
答案 3 :(得分:1)
尝试类似
的内容$('#ddlWorkHourFact').options[$('#ddlWorkHourFact').selectedIndex].val();
答案 4 :(得分:1)
试试这个:
var _ddl = $("[id$='_ddlWorkHourFact']").attr("id");
_option = "#" + _ddl + " option:selected";
_value= $(_option).val();
答案 5 :(得分:0)
好吧我想出了问题。当页面加载时我试图提醒它。页面启动时脚本正在运行。但我把警报放在一个函数中并将其作为一个onclick,然后问题就结束了。谢谢你的帮助