如何在客户端防止PostBack?

时间:2010-06-11 13:56:45

标签: asp.net validation postback

我在客户端上有一些验证JS代码,必须在PostBack中执行。 如果此验证代码返回'false',则回发是不必要的。 如何禁用它?

5 个答案:

答案 0 :(得分:4)

请记住,真正的验证应该始终在服务器上发生。你做客户端的任何事情只是一个优化来节省一些http往返。

保持客户端和服务器端验证与ASP.Net同步的最简单方法是使用验证控件。验证控件将同时执行客户端和服务器端验证,如果验证在客户端上失败,它永远不会发布到服务器。

如果您想做标准验证控件未涵盖的事情,您应该使用CustomValidator或从BaseValidator继承您自己的控件。

答案 1 :(得分:3)

在ASP按钮上设置OnClientClick ='YourJSValidationFunction'。

然后让YourJSValidationFunction返回true或false。

False会阻止回发

实施例: http://vijaymodi.wordpress.com/2007/06/08/button-onclick-and-onclientclick-2/

答案 2 :(得分:2)

如果按钮触发了回发,那么您可以执行以下操作:

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return IsValid();" />

如果IsValid函数返回false,则将阻止回发。 如果您想要捕获所有回发而不管哪个控件触发它,那么您可以使用
<form id="form1" runat="server" onsubmit="return IsValid();">

答案 3 :(得分:0)

你用什么:一些验证器或带onclick事件的按钮? 如果你有

<input type="button" id="btnID" runat="server" onclick="CheckValid();"/>

function CheckValid()
{
   if(!IsValid) return false;//then no post back occer
}

答案 4 :(得分:0)

根据您尝试的验证,您还可以使用CustomValidator控件。这也可以让您在服务器端轻松实现验证逻辑。