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

时间:2009-07-01 01:12:57

标签: asp.net javascript validation

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

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

6 个答案:

答案 0 :(得分:166)

如果我有一个使用一堆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>

答案 1 :(得分:9)

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

答案 2 :(得分:6)

ASP.NET验证控件公开了一个可以与javascript使用的客户端API:http://msdn.microsoft.com/en-us/library/aa479045.aspx

您应该能够检查Page_IsValid对象,看看是否有任何验证控件无效。

答案 3 :(得分:3)

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

答案 4 :(得分:1)

您可以使用jQuery和Validation插件来执行客户端验证。这将适用于html标记和asp.net服务器控件。 Phil Haack has a good sample project将向您展示基础知识。

SO question也对此方法进行了深入审核。

答案 5 :(得分:0)

为页面中的每个ValidationGroup验证器控件设置asp.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
}
}