asp.net web表单客户端验证始终回发

asp.net web forms clientside validation always postback

本文关键字:验证 客户端 net web 表单 asp      更新时间:2023-09-26

我在一个棕地网站上工作,该网站会启动asp.net客户端验证,无论结果如何,它都会进行回发。如果这种行为没有通过验证,有人有什么想法可以阻止它吗?

提前谢谢。

吊舱

您可以利用自定义验证程序控制w3schools或MSDN链接。它允许您执行客户端验证。用法示例。

<asp:CustomValidator id="CustomValidator1" runat="server" 
    ErrorMessage="Number not divisible by 2!" 
    ControlToValidate="txtCustomData" 
    OnServerValidate="ServerValidate" 
    ClientValidationFunction="CheckEven" /><br>
Input:
<asp:TextBox id="txtCustomData" runat="server" />
<script language="javascript">
<!--
function CheckEven(source, args) {
    var val = parseInt(args.Value, 10);
    if (isNaN(val)) {
        args.IsValid = false;
    }
    else {
        args.IsValid = ((val % 2) == 0);
    }
}
// -->
</script>

我得到了同样的行为,并通过将CausesValidation属性设置为True来修复它。

仅举个例子:验证文本框,如果它的空回发未被调用,则回发已被调用。

按钮点击事件:

<asp:TextBox id="vTextBox" runat="server" />
<asp:button id="okButton" runat="server OnClick="okButton_Click" OnClientClick=" return isValidate();"/>
<script type="text/javascript"> 

function isValidate() {   var txt = $("#vTextBox").val();  
if ( txt === "") {  alert("error"); return false; }
else { alert(" no error "); return true; } }
</script>

在我的案例中,我有几个CustomValidator,其中缺少ClientValidationFunction。

请确保页面上没有可能导致此问题的JavaScript错误。

对于客户端验证,您必须调用一些JS函数进行验证:

如果你在点击按钮时调用客户端验证方法,那么你应该像下面这样调用它:

<asp:Button runat="server" id ="btnSubmit" onClientClick="return ValidateForm();" >

Validate Form方法应该返回true或false。

类似:

function ValidateForm()
{
/// Validation goes here 
if (validated)
{
  return true;
}
else{
  return false;
}
}
}