![](/img/trans.png)
[英]ASP.NET MVC4 with Razor - Filtering dropdownlist by value selected from another dropdownlist
[英]Getting the selected value from dropdownlist in asp.net
我一直試圖從下拉列表中獲取所選項目值,但似乎它無法正常工作。 我已經查看了其他主題,我知道這個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>
首先,確保HTML代碼中存在ID ddlWorkHourFact。 ASP.NET經常創建這樣的東西:ctl1_ddlWorkHourFact。 您可以使用
ClientIDMode="Static"
避免這個問題。 然后
$('#ddlWorkHourFact').val()
應該夠了。
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;
}
有關此代碼的更多信息,請訪問此處 。
然后,您只需要執行以下操作:GetClientID(“txtboxId”)。attr(“id”)以獲取ID。
$("#" + GetClientID("ddlWorkHourFact").attr("id") + " option:selected").val();
這只是一個例子,你可以改進代碼。
編輯:
如果你在同一個控制頁面中這樣做,你也可以使用這樣的東西。
$('#<%= ddlWorkHourFact.ClientID %> option:selected').val();
嘗試$('#ddlWorkHourFact :selected').val()
好像你錯過了哈希“#”符號......
嘗試類似的東西
$('#ddlWorkHourFact').options[$('#ddlWorkHourFact').selectedIndex].val();
嘗試這個 :
var _ddl = $("[id$='_ddlWorkHourFact']").attr("id");
_option = "#" + _ddl + " option:selected";
_value= $(_option).val();
好吧我想出了問題。 當頁面加載時我試圖提醒它。 頁面啟動時腳本正在運行。 但我把警報放在一個函數中並將其作為一個onclick,然后問題就結束了。 謝謝你的幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.