Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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
Asp.net ASP自定义服务器端验证未启动_Asp.net_Validation - Fatal编程技术网

Asp.net ASP自定义服务器端验证未启动

Asp.net ASP自定义服务器端验证未启动,asp.net,validation,Asp.net,Validation,我一直在想这个问题,但没有任何进展,所以如果有人能给我一些启示,我绝对会喜欢它……我有一个ASP.Net表单网站,我加载一个jQuery对话框,让用户输入ID,做一个必填字段,以及表达式验证程序客户端(工作正常),然后,我试图通过SQL表服务器端验证这一点。问题是我无法启动服务器端CustomValidator,我已将其从实际的验证脚本更改为“set args.IsValid=false”,并在submit按钮函数的顶部添加了“Page.Validate()”,向自定义“验证”子项添加了一个断点

我一直在想这个问题,但没有任何进展,所以如果有人能给我一些启示,我绝对会喜欢它……我有一个ASP.Net表单网站,我加载一个jQuery对话框,让用户输入ID,做一个必填字段,以及表达式验证程序客户端(工作正常),然后,我试图通过SQL表服务器端验证这一点。问题是我无法启动服务器端CustomValidator,我已将其从实际的验证脚本更改为“set args.IsValid=false”,并在submit按钮函数的顶部添加了“Page.Validate()”,向自定义“验证”子项添加了一个断点,从所有外观来看,验证操作不会执行,提交功能将继续,就好像条目是有效的一样

// Show the Login Dialog
        <script>
         function showLogin() {
             $("#login-dialog").dialog({
                 height: 380
                 , width: 500
                 , modal: true
                 , buttons: {
                     'Login': {
                         text: "Login"
                         //Login Dialog Login Submit button function
                         , click: function () {
                             $("#<%=LoginSubmit.ClientID()%>")[0].click();
                             return false;
                         }
                     }
                     , 'Register': {
                         text: "Register"
                         //Login Dialog Register Button
                         , click: function () {
                             $("#<%=RegisterButton.ClientID()%>")[0].click();
                             return false;
                         }
                     }
                 }
             });
         };

提前感谢您的帮助,非常感谢

更新:
这显然与jQuery对话框中的DIV有关,根据@ShaiCohen的评论,我从登录按钮和对话框中使用的DIV中删除了隐藏属性,使对话框DIV也显示在页面中,当我在对话框外使用ASP submit按钮时,验证工作正常,当我在对话框中使用ASP按钮或使用dialog按钮时,验证不起作用。

我最终放弃使用jQuery模式,并决定使用CSS来构建一个模式,在那里进行验证时没有遇到任何问题。

看起来您的
LoginSubmit
按钮被设置为隐藏。这可能是你的问题。奇怪的是,逗号的奇怪位置是怎么回事?@ShaiCohen这是我能找到的唯一解决办法,可以从jQ对话框中单击服务器端脚本,因为ASP按钮在其中不起作用,我不知道隐藏的按钮会影响验证,我会四处寻找解决方案。@Sparky我想我可以把这归因于在开始这个项目之前做了大量的T-SQL工作,在行的开头放逗号已经成为习惯,所以如果我注释掉或删除一行,我就不必弄乱上面/下面的逗号,intellisense在VS中的逗号后添加了额外的空格。那么隐藏按钮是问题所在吗?顺便说一句,我对逗号也做了同样的事情……)
<%--Login dialog Div--%>

        <div id="login-dialog" title="Please Login or Register" hidden="hidden">

        <p>If you have already setup an Operator ID you can enter it below, otherwise please register for one.</p>

            <asp:RequiredFieldValidator runat="server" ControlToValidate="LoginOperatorID" ErrorMessage="Operator ID is required." CssClass="field-validation-error" />

            <asp:RegularExpressionValidator runat="server" ControlToValidate="LoginOperatorID" ErrorMessage="Operator ID must be 4-9 digits" CssClass="field-validation-error" ValidationExpression="[0-9]{4,9}" />

        <table id="LoginTable">
        <tr>
        <td>Operator ID:</td>
        <td><input type="password" runat="server" id="LoginOperatorID" maxlength="9" /></td>

            <asp:CustomValidator ID="LoginSubmitValidator" runat="server" EnableClientScript="true" Enabled="true" 
                ErrorMessage="Operator ID does not exist." 
                ControlToValidate="LoginOperatorID"
                OnServerValidate="CheckLoginID" CssClass="field-validation-error" />
            </tr>
        </table><br />
        <input type="button" runat="server" id="LoginSubmit" onserverclick="SubmitLogin" hidden="hidden" causesvalidation="true" />
         <input type="button" runat="server" id="RegisterButton" hidden="hidden" onserverclick="RegisterDialog" causesvalidation="false" />
'Validate Operator Login Sub
    Protected Sub CheckLoginID(source As Object, args As ServerValidateEventArgs)
        args.IsValid = False
    End Sub
    'Submit Operator Login Sub
    Sub SubmitLogin()
            Page.Validate()
       .....
    End Sub