2012-05-08 38 views
2

我有一個包含5個項目的下拉列表。最後一項的價值是「其他」。通過選擇「其他」出現與輸入彈出。這個輸入的值是通過javascript設置的。因此,值得becoms插入文本。當我提交表格時,它不適用於這個動態值,但是其他選擇作品。有任何想法嗎?非常感謝!asp dropdownlist javascript問題的動態值

+0

提交表單將'後back'的頁面,你在客戶端做任何事情都會消失,除非它把數據發送回服務器,這是,AJAX。 – fankt

+0

你可以發佈你正在使用的代碼來設置項目的價值嗎? – Snuffleupagus

+0

使用Request.Params集合訪問動態值。 – Zachary

回答

1

而不是設置這個值作爲droupdown列表項的值,可以使用隱伏場

<input type="hidden" id="hiddenField" runat="server" /> 

使用JavaScript設定值如下

document.getElementById ("hiddenField").value = "inputValue"; 

hiddenField值可以從後面的代碼訪問如下

string inputValue = hiddenField.Value; 
+0

謝謝你veru多!這個對我有用!好的解決方案 –

3

這裏是一個使用Request.Params集合的簡單例子t o讀取動態增加的值。

這是客戶端代碼。

<!-- Server Control - Drop Down List --> 
<asp:DropDownList ID="ddList" runat="server"> 
    <asp:ListItem Text="A" Value="A"></asp:ListItem> 
    <asp:ListItem Text="B" Value="B"></asp:ListItem> 
    <asp:ListItem Text="C" Value="C"></asp:ListItem> 
</asp:DropDownList> 

<!-- Control to fire JS event to add a new item to the Drop Down List above --> 
<input type="button" value="Add Item D" id="AddItem" /> 

<!-- jQuery event to add a new option to the list on the click (no postback) --> 
$('#AddItem').click(function() 
{ 
    $('#<%= ddList.ClientID %>').append('<option value="D">D</option>'); 
}); 

這裏是讀取值的服務器端代碼。

var ddlListSelectedValue = Request.Params["ddList"]; 
1

只需更新你功能

$('#AddItem').click(function() 
{ 
var dropdown= document.getElementById("<%= ddList.ClientID %>"); 
dropdown.options[dropdown.options.length] = new Option('YOUR TEXT', 'YOUR VALUE'); 
}); 

乾杯



我已經測試它自己,它的工作原理。以下是一個完整的例子:

<html> 
<head> 
<title>Test ddl Item Addition By IuR</title> 
</head> 
<body onload="add_dditem()"> 
<script type="text/javascript"> 
function add_dditem() 
{ 
var dropdown= document.getElementById("ddList"); 
dropdown.options[dropdown.options.length] = new Option('YOUR TEXT', 'YOUR VALUE'); 
} 
</script> 

<select id="ddList"> 
</select> 
</body> 
</html>