确定页面在JavaScript中是否有效- ASP.NET

4xrmg8kj  于 2022-12-27  发布在  .NET
关注(0)|答案(6)|浏览(127)

确定ASPX页面上的表单在JavaScript中是否有效的最佳方法是什么?
我正在尝试检查使用JavaScript window.showModalDialog()打开的用户控件的验证,但检查服务器端的“Page.IsValid”属性无效。我正在使用ASP.NET验证控件进行页验证。

gfttwv5a

gfttwv5a1#

如果我有一个页面使用了一堆ASP.NET验证控件,我将使用类似下面的代码来验证页面。在输入提交上调用。希望这个代码示例能让你入门!

<input type="submit" value="Submit" onclick"ValidatePage();" />

    <script type="text/javascript">

    function ValidatePage() {

        if (typeof (Page_ClientValidate) == 'function') {
            Page_ClientValidate();
        }

        if (Page_IsValid) {
            // do something
            alert('Page is valid!');                
        }
        else {
            // do something else
            alert('Page is not valid!');
        }
    }

</script>
gab6jxml

gab6jxml2#

您正在检查Page.IsValid,而您应该检查Page_IsValid(它是由.NET验证器公开的变量):)

dddzy1tm

dddzy1tm3#

ASP.NET验证控件公开了一个客户端API,您可以将其与javascript一起使用:http://msdn.microsoft.com/en-us/library/aa479045.aspx
您应该能够检查Page_IsValid对象以查看是否有任何验证控件无效。

2uluyalo

2uluyalo4#

$("input[id$=Button2]").click(function () {
    var validated = Page_ClientValidate('repo');
    if (validated) {
        // JavaScript code.
    }
});
zphenhs4

zphenhs45#

您可以使用jQuery和Validation插件来执行客户端验证,这将与html标记和asp.net服务器控件一起工作。
SO question也对这种方法进行了深入的回顾。

ipakzgxi

ipakzgxi6#

为页面中的每个asp.net验证器控件设置ValidationGroup属性,您必须为页面中的ValidationGroup提供相同的名称。
例如:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required" ValidationGroup="Validate"></asp:RequiredFieldValidator>
    <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="RangeValidator" ValidationGroup="Validate"></asp:RangeValidator>
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" ValidationGroup="Validate"></asp:CustomValidator>

然后在Page_ClientValidate("ValidationGroup")之类的javascript调用中
例如:

function ValidatePage(){
if(Page_ClientValidate("Validate")){ //validate using above validation controls group
      //validation return true section
}
else{
      //validation return false section
}
}

相关问题