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


78

确定ASPX页上的表单在JavaScript中是否有效的最佳方法是什么?

我试图检查使用JavaScript打开的用户控件的有效性,window.showModalDialog()并检查服务器端的'Page.IsValid'属性不起作用。我正在使用ASP.NET验证控件进行页面验证。

Answers:


173

如果我的页面正在使用大量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>

2
您回答并阅读了以下帖子:velocityreviews.com/forums/…帮助我解决了我的问题。
Michael Kniskern

1
如果页面上有多个验证组,而我只需要检查一个验证组是否有效,该如何修改上面的代码?
松饼人

5
更新-我删除了Page_ClientValidate()呼叫,它起作用了:)
松饼人

另请参阅stackoverflow.com/a/3062770/292060,以获取此调用的参数,以解决多个验证组。
goodeye

1
你真是太厉害了 谢谢。
Jonas T

10

您正在检查Page.IsValid应检查的位置Page_IsValid(这是.NET验证程序公开的变量):)


我忘了提到我正在检查服务器端的Page.IsValid属性是否起作用。
Michael Kniskern


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


1

ValidationGroupasp.net页面中的每个验证器控件设置属性,您必须在页面中提供相同的名称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>

之后,在您的javascript调用中 Page_ClientValidate("ValidationGroup")

例如:

function ValidatePage(){
if(Page_ClientValidate("Validate")){ //validate using above validation controls group
      //validation return true section
}
else{
      //validation return false section
}
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.