我似乎有一个奇怪的问题,我不知道如何解决。 我有一个这样的按钮:
<asp:Button ID="btnSave" runat="server" ClientIDMode="Static" Text="Save" OnClientClick="return ConfirmSave();" OnClick="btnSave_Click" />
如果我按照以下方式编写客户端函数,它将按预期工作:
function ConfirmSave()
{
return confirm('Confirm?');
}
但我应该在函数内检查确认结果,如下所示:
function ConfirmSave()
{
if (Page_ClientValidate('validationGroup'))
{
var conf = confirm("Confirm?");
if (conf)
{
$('#btnSave').attr('disabled', 'disabled');
}
return conf;
}
else
return false;
}
执行此操作后,页面回发但服务器点击事件不会触发。
有人可以帮忙吗?感谢
答案 0 :(得分:2)
是的,因为Button是使用提交类型输入的。
您可能还有其他错误,可能是您的按钮ID的重复,在页面中(因为您已将其设置为静态模式)。
检查您是否已在其他地方再次提供 btnSave ,或检查您是否有任何JavaScript错误。
(在您的页面呈现后,在您的浏览器上查看您的页面的源代码并搜索btnSave id,如果存在多次)
答案 1 :(得分:2)
在代码完成并提交后立即使用超时来禁用该按钮。
if (conf)
{
setTimeout( function() { $('#btnSave').attr('disabled', 'disabled') }, 0 );
}
答案 2 :(得分:0)
如果你的代码中有一个名为btnSave_Click()的方法,那么当你回发它时,它将首先落入你的Page_load方法,然后落入该方法。如果你使用的是VB,那么你需要一个Handles btnSave_Click()
之后的方法。