我在客户端上有一些验证JS代码,必须在PostBack中执行。 如果此验证代码返回'false',则回发是不必要的。 如何禁用它?
答案 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控件。这也可以让您在服务器端轻松实现验证逻辑。