如何在客户端防止PostBack?

3

我在客户端有一些验证JS代码,必须在PostBack之前执行。如果这个验证代码返回“false”,则PostBack是不必要的。如何禁用它?

5个回答

4
请记住,真正的验证应该始终在服务器上进行。客户端所做的任何事情都只是为了优化,以节省一些http往返。使用ASP.Net保持客户端和服务器端验证同步的最简单方法是使用验证控件。验证控件将同时进行客户端和服务器端验证,如果客户端验证失败,它永远不会提交到服务器。如果您想要做一些标准验证控件未涵盖的内容,则应使用CustomValidator或从BaseValidator继承自己的控件。

3

2
如果postback是由按钮触发的,那么您可以像这样处理:
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return IsValid();" />

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

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

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

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

1
在这个例子中,你可以只返回IsValid :) - TheLukeMcCarthy

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接