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

80

如何通过JavaScript最好的方法来确定ASPX页面上的表单是否有效?

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

6个回答

175

如果我有一个使用了一堆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
你的回答以及阅读以下帖子:http://www.velocityreviews.com/forums/t292061-regarding-pageclientvalidate-function.html 帮助我解决了问题。 - Michael Kniskern
1
如果页面上有多个验证组,并且我只需要检查单个组是否有效,我该如何修改上面的代码? - The Muffin Man
5
更新 - 我移除了 Page_ClientValidate() 的调用,现在可以工作了 :) - The Muffin Man
请参见https://dev59.com/iXNA5IYBdhLWcg3wa9Kp#3062770,了解针对多个验证组的此调用的参数。 - goodeye

9

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


我忘了提到我在服务器端检查Page.IsValid属性时它没有起作用。 - Michael Kniskern

7

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

1
在您的页面中,为每个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>

在你的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
}
}

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接