2012-05-08 97 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>