如何在回邮后检查表单
本文关键字:检查 检查表 表单 | 更新日期: 2023-09-27 18:21:23
请对此场景进行联合排序:
我有一张有3个下拉列表的表格。我将这些控件放在update panel
中。当我的用户在第一个下拉列表中选择值大于2的项目时,我会使用jQuery禁用第二个和第三个下拉列表。我的问题是,在任何帖子返回后,所有下拉列表都被启用。我知道这很正常,但我如何再次检查表单并禁用应该禁用的控件?
谢谢
编辑1)
这是我的代码:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:DropDownList ID="DropDownList1" runat="server" Width="100px">
<asp:ListItem Value="1" Text="1" />
<asp:ListItem Value="2" Text="2" />
<asp:ListItem Value="3" Text="3" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
<asp:DropDownList ID="DropDownList2" runat="server" Width="100px">
<asp:ListItem Value="1" Text="1" />
<asp:ListItem Value="2" Text="2" />
<asp:ListItem Value="3" Text="3" />
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
<asp:DropDownList ID="DropDownList3" runat="server" Width="100px">
<asp:ListItem Value="1" Text="1" />
<asp:ListItem Value="2" Text="2" />
<asp:ListItem Value="3" Text="3" />
</asp:DropDownList>
<br />
</td>
</tr>
</table>
<div>
<asp:Button ID="Button1" runat="server" Text="Cause Post Back" Width="200px"
onclick="Button1_Click"/>
</div>
</ContentTemplate>
</asp:UpdatePanel>
和javascript:
$(document).ready(function () {
function Disable(item) {
item.attr('disabled', 'disabled');
}
$('#DropDownList1').change(function () {
if ($(this).val() > 2) {
Disable($('#DropDownList2'));
Disable($('#DropDownList3'));
}
else {
Enable($('#DropDownList2'));
Enable($('#DropDownList3'));
}
}).change();
function Enable(item) {
item.removeAttr('disabled');
}
});
我遗漏了什么吗?
$('#dropdown1').change(function()
{
if ( $(this).val() > 2 )
{
$('#dropdown2, #dropdown3').prop('disabled', true);
}
else
{
$('#dropdown2, #dropdown3').prop('disabled', false);
}
})
.change();
问题是由updatepanel引起的,因为它部分地张贴在您的页面上。请将Jquery放入函数pageLoad()中
function pageLoad() {
// Put your code here...
}
希望它能解决你的问题。
尝试这个
AutoPostBack="true"
作为
<asp:DropDownList ID="DropDownList1" runat="server" Width="100px"
AutoPostBack="true">
<asp:ListItem Value="1" Text="1" />
<asp:ListItem Value="2" Text="2" />
<asp:ListItem Value="3" Text="3" />
</asp:DropDownList>
添加一个隐藏字段,用于存储下拉列表的状态。。例如0=禁用,1=启用。。。禁用下拉菜单时,将隐藏字段的值设置为0。启用时,将其设置为1。然后,在发布和重新加载表单时,读取隐藏字段的值,并相应地启用/禁用下拉列表。
$(function(){
if($("#hiddenFieldID").val()=="0")
//disable
else
//enable
});