我试图阻止用户双击我正在更新的页面的提交按钮。问题是必须要进行服务器端验证,以确定用户是否必须进行任何更新才能继续。我目前在表单的提交事件中有以下代码。
<asp:Button ID="SubmitPayment" runat="server" OnClientClick="this.disabled='true';" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
如果这成为一个问题,那么页面不会通过验证。在这种情况下,我试图启用按钮的所有内容都失败了。他们很难在禁用提交按钮的情况下重新提交更正的信息。我在验证结束时尝试了以下两种方法来重新启用它。
SubmitPayment.Enabled = true;
SubmitPayment.Attributes.Add("disabled", "false);
我该怎么做才能重新启用此控件?这是在Visual Studio 2005中。提前感谢。
CNC中 我使用的方法如下。我添加了一个禁用的附加诱饵按钮,并将display css属性设置为none。然后我使用javascript来隐藏提交按钮并在OnClientClick事件中显示诱饵按钮。最后,服务器端方法的结束将更新按钮上的css属性以隐藏它们并在之后显示它们。
代码段如下。再次感谢您的帮助
function PreventDoubleClick()
{
var sp = document.getElementById("SubmitPayment");
var db = document.getElementById("DecoyButton");
sp.style.display = "none";
db.style.display = "inline";
}
<asp:Button ID="SubmitPayment" runat="server" OnClientClick="javascript:PreventDoubleClick();" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
<asp:Button ID="DecoyButton" Enabled="false" runat="server" style="display:none;" Text="Please Wait..."/>
DecoyButton.Style.Add("display", "none");
SubmitPayment.Style.Add("display", "inline");
答案 0 :(得分:1)
之前我遇到过类似的问题,我提出的最佳解决方案是隐藏按钮并将其替换为请等待(或验证)消息。如果验证失败,您可以再次显示该按钮