来自javascript问题的asp下拉列表动态值

时间:2012-05-08 14:47:01

标签: javascript asp.net drop-down-menu

我有一个包含5个项目的下拉列表。最后一项的价值是“其他”。通过选择“其他”出现弹出输入。此输入的值我通过javascript设置为此项目。所以值becoms插入文本。当我提交表单时,它不适用于此动态值,但其他选项工作。有任何想法吗?非常感谢!

3 个答案:

答案 0 :(得分:4)

以下是使用Request.Params集合读取动态增值的快速示例。

这是客户端代码。

<!-- 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 :(得分:2)

您可以使用hiden字段

,而不是将此值设置为droupdown列表项值
<input type="hidden" id="hiddenField" runat="server" />

使用JavaScript设置值,如下所示

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

hiddenField值可以从后面的代码访问,如下所示

string inputValue = hiddenField.Value;

答案 2 :(得分: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>