在我的ASP.NET Web窗体中,我有一系列HTML按钮,除了1之外,它们的初始状态均被禁用。单击启用的初始按钮后,我使用JavaScript从第一个禁用按钮中删除了禁用的类,但是ASP.NET触发回发,并且按钮重置为禁用状态。我尝试添加preventdefault来阻止这种情况的发生,但是它不起作用。如何防止回发将按钮重置为禁用状态?
这是我按钮的代码
<li><button id="viewOrderAuto" class="btn btn-default btn-primary" type="button">1. View Order</button></li>
<li><button id="addRecItmAuto" class="btn btn-default disabled" type="button">2. Update Quantities</button></li>
<li><button id="receiveAuto" class="btn btn-default disabled" type="button">3. Save Changes</button></li>
这是第一个按钮的点击事件
$("#viewOrderAuto")
.click(function (e) {
AutoRunthrough.viewOrder();
});
这是调用该函数以删除禁用的类的代码
viewOrder: function (e) {
$('.nav-tabs a[href="#receiving"]').tab('show');
var btnRow = $("#MainContent_OrderListGrid tbody").find("a:first");
if (typeof btnRow != 'undefined')
eval(btnRow.attr('href'));
AutoRunthrough.removeDisable($("#addRecItmAuto"));
}
最后删除类的函数
removeDisable: function (element) {
element.removeClass("disabled");
element.preventDefault();
}
答案 0 :(得分:0)
JavaScript不会保持状态不变。因此,当页面刷新时,整个脚本将再次呈现。您可以将隐藏值保留在aspx.cs文件中,并通过javaScript进行设置。然后根据它可以禁用按钮。
.aspx.cs文件
<asp:HiddenField ID="buttonCondition" runat="server" />
<script>
var buttonCondition= '#<%= buttonCondition.ClientID %>';
</script>
javaScript文件
$("#viewOrderAuto")
.click(function (e) {
AutoRunthrough.viewOrder();
$(buttonCondition).val(true)
});
if($(buttonCondition).val()==true)
then do here what you want