Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net web表单客户端验证始终回发_C#_Javascript_Asp.net_Webforms - Fatal编程技术网

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

C# asp.net web表单客户端验证始终回发,c#,javascript,asp.net,webforms,C#,Javascript,Asp.net,Webforms,我在一个启动asp.net客户端验证的棕色地带网站上工作,无论结果如何,它总是回发。如果验证失败,有人有什么办法阻止这种行为吗 提前谢谢 Podge对于客户端验证,您必须调用一些JS函数进行验证: 如果在单击按钮时调用客户端验证方法,则应按如下方式调用: <asp:Button runat="server" id ="btnSubmit" onClientClick="return ValidateForm();" > 您可以利用自定义验证器控件或链接。它允许您执行客户端验证。用法

我在一个启动asp.net客户端验证的棕色地带网站上工作,无论结果如何,它总是回发。如果验证失败,有人有什么办法阻止这种行为吗

提前谢谢


Podge

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

如果在单击按钮时调用客户端验证方法,则应按如下方式调用:

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

您可以利用自定义验证器控件或链接。它允许您执行客户端验证。用法


输入:
我得到了相同的行为,并通过将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错误。

您能给我们看一下代码吗?如果你做的每件事都正确,它就必须工作。你是否向导致回发的控件添加了验证组?Walther-恐怕我无法发布任何代码(由于隐私问题)。MrZulu-我没有验证组。经过进一步调查后,它似乎与一些url重写和actionlessform有关,请参阅(滚动备份)。我现在只需要为脚本端找到一个解决方案。修复程序就在这里,它与url重写有关。很抱歉,这不是自定义验证器的问题,但即使客户端验证失败,也会发生回发。恐怕没有一个按钮添加了onclientclick属性。
<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>
<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>