在我的表单中有两个DropDownList控件。
启用第1个,禁用第2个。
选择第一个下拉列表后,我正在使用javascript更改第二个下拉列表的选定值。
工作正常。但是当我试图获得第二个下拉列表的选定值时,它将返回第一个元素的值(即'select')。
请参阅我的代码
<asp:DropDownList ID="ddlStartTime1" runat="server" AutoPostBack="false"
Width="70" Enabled="false"></asp:DropDownList>
注意:我正在使用javascript更改第二个(禁用)下拉列表的选定值。
Javascript代码:
$(document).ready(function() {
$('#<%= ddlStartTime1.ClientID %>').change(function() {
$('#<%= ddlEndTime1.ClientID %>').val($('#<%= ddlStartTime1.ClientID%>').val());
})
});
是否有其他方法可以更改已禁用DropDownList的值?
答案 0 :(得分:11)
如果您尝试在服务器上读取第二个下拉列表(禁用一个)的值,您将永远无法读取更新的值,因为禁用的控件中的数据将不会从客户端发回服务器。
您应该在将数据发布到服务器之前启用下拉列表,或者使用隐藏控件来保存已禁用下拉列表的数据。
答案 1 :(得分:1)
您需要添加input
的其他hidden
。每当您更改第一个DropDownList
的值时,您都会更改第二个DropDownList
的值和隐藏输入的值。
在服务器端,您不是在查看第二个DropDownList
的值,而是查看隐藏输入的值。发布表单时,请确保隐藏值始终与第二个DDL同步。
答案 2 :(得分:0)
只需在隐藏字段中添加禁用下拉列表的值,然后从隐藏字段读取值,而不是dropdownlist。可能这会对您有所帮助。