从JavaScript中的OnClientClick事件中阻止C#中的asp:Button OnClick事件?

时间:2013-02-11 10:24:06

标签: c# asp.net button onclick onclientclick

我的网页上有asp:Button,它调用了JavaScript函数和代码隐藏方法。后者调用导航到另一个页面。在JavaScript函数中,我正在检查一个条件。如果不满足此条件,我想中止导航,以便不调用OnClick方法。这可能吗?

<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="SaveValues()"
    Text="Action1" CssClass="specialButton" runat="server" />

3 个答案:

答案 0 :(得分:4)

要阻止OnClick执行,只需从false返回OnClientClick

<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="return SaveValues();"
    Text="Action1" CssClass="specialButton" runat="server" />

假设SaveValues也将返回一个布尔值,无论条件是否满足。

答案 1 :(得分:2)

是的,这是可能的

function SaveValues()
{
if(//check your codition here)
{
return true;
}
else
{
return false;
}
}

<asp:Button OnClick="Button_Click" ID="Action1" OnClientClick="javascript:return SaveValues();" Text="Action1" CssClass="specialButton" runat="server" />

答案 2 :(得分:1)

根据JavaScript的成功,返回truefalse应该阻止或启用按钮提交。所以,不要只是在OnClientClick结尾处进行处理,而是必须对其进行条件化并立即使您的调用看起来更难看,让方法指出其运行状态。