Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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
Javascript 添加查询字符串时验证无效_Javascript_C#_Asp.net_Validation_Customvalidator - Fatal编程技术网

Javascript 添加查询字符串时验证无效

Javascript 添加查询字符串时验证无效,javascript,c#,asp.net,validation,customvalidator,Javascript,C#,Asp.net,Validation,Customvalidator,使用response.redirect或windows.location.href将查询字符串作为参数传递时,从一页重定向到另一页时,我的验证不起作用 当我使用以下命令从一个页面重定向到另一个页面时: <asp:Button ID="New" runat="server" Text="New" OnClientClick="Transfer()" /> function Transfer() { window.location.href = "Abc.aspx?f

使用
response.redirect
windows.location.href
将查询字符串作为参数传递时,从一页重定向到另一页时,我的验证不起作用

当我使用以下命令从一个页面重定向到另一个页面时:

<asp:Button ID="New" runat="server" Text="New" OnClientClick="Transfer()" />

 function Transfer() {
        window.location.href = "Abc.aspx?flag=yes"; //when adding query string my validation doesnt work
        //window.location.href = "Abc.aspx";// When removing query string my validation successfully works
    }
现在,当我点击提交按钮时,我的服务器端代码事件被触发,但我的验证弹出窗口并没有出现

我甚至在web.config中放了这一行:

  <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"></add>


但这仍然无法从response.redirect或从
windows.location.href
中删除查询字符串,然后我的验证弹出窗口成功显示,并且工作正常。

如果,如您所说,
window.Page\u Validators[i]。isvalid
is
false
类型(window.Page\u Validators[i]。errormessage)
true
,则必须进入“if”状态。计数器必须设置为1,随后必须进入“如果”

我对检查做了一些更改,并添加了控制台日志来帮助您。如果有人不知道,您可以通过点击浏览器中的
F12
并单击“控制台”来查看这些消息

函数checkvalidation(){
window.Page_ClientValidate('validate');
var计数器=0;
var-val='';
对于(var i=0;i';
}
}
如果(计数器==1){
//“我的验证”弹出显示验证警报,因为此计数器值保持为0,因此此部分不会执行。
}
}

当页面无效时,尝试从客户端单击按钮返回false。请确保在此之前和代码执行期间没有错误。@rdmptn:但问题是我的验证弹出窗口没有启动,因为它没有进入我的if条件您的“if”条件-这两个语句都是假的还是只有一个?那么唯一合乎逻辑的做法是记录以下内容:
window.Page\u Validators
,然后检查它是否正确偶数数组及其包含的错误类型。是否为“window.Page_Validators[i]。是否为“true”或“false”?“typeof(window.Page_Validators[i].errormessage)==“string”)”是真还是假?
<%@ Page Title="" Theme="---" Language="C#" MasterPageFile="---" AutoEventWireup="true" CodeBehind="---" EnableEventValidation="false" Inherits="---" %>

     <asp:TextBox ID="txt1" runat="server"></asp:TextBox>
     <asp:RequiredFieldValidator ID="rf1" runat="server" ErrorMessage="require" ForeColor="Red" ControlToValidate="txt1" Display="None" ValidationGroup="validate"></asp:RequiredFieldValidator>

     <asp:TextBox ID="txt2" runat="server"></asp:TextBox>
     <asp:RequiredFieldValidator ID="rf2" runat="server" ErrorMessage="require" ForeColor="Red" ControlToValidate="txt2" Display="None" ValidationGroup="validate"></asp:RequiredFieldValidator>

<asp:Button ID="btnSubmit" runat="server" Text="Save" ValidationGroup="validate" OnClick="btnSubmit_Click" UseSubmitBehavior="true" OnClientClick="checkvalidation()"/> //on click of this i want to perform validation but it is not working.
<telerik:RadCodeBlock ID="radcodeblock1" runat="server" EnableViewState="true">
 <script type="text/javascript">
    function checkvalidation() {
            window.Page_ClientValidate('validate');
            var counter= 0;
            var val= '';
            for (var i = 0; i < window.Page_Validators.length; i++) {
                if (!window.Page_Validators[i].isvalid && typeof (window.Page_Validators[i].errormessage) == "string") {
                    counter= 1;
                    val+= '-  ' + window.Page_Validators[i].errormessage + '<br>';
                }
            }
            if (counter== 1) {
              //My validation pop up to display validations alert because this counter value remains 0 so this part is not executed.
            }
        }
 </script>
</telerik:RadCodeBlock>
  <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"></add>
function checkvalidation() {
        window.Page_ClientValidate('validate');
        var counter= 0;
        var val= '';
        for (var i = 0; i < window.Page_Validators.length; i++) {
            if ( (window.Page_Validators[i].isvalid === false) && typeof (window.Page_Validators[i].errormessage) == "string") {
                console.log("Inside the if condition");
                console.log(window.Page_Validators[i]);
                counter = 1;
                val+= '-  ' + window.Page_Validators[i].errormessage + '<br>';
            }
        }
        if (counter === 1) {
          //My validation pop up to display validations alert because this counter value remains 0 so this part is not executed.
        }
    }