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

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

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

如果我有一个使用一堆ASP.NETvalidation控件的页面,我将使用类似于下面的代码来validation页面。 通过input提交进行调用。 希望这个代码示例将帮助您开始!

  <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> 

你正在检查Page.IsValid你应该在哪里检查Page_IsValid (这是一个由.NETvalidation器暴露的variables):)

ASP.NETvalidation控件公开您可以在javascript中使用的客户端API: http : //msdn.microsoft.com/zh-cn/library/aa479045.aspx

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

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

您可以使用jQuery和Validation插件来执行客户端validation。 这将与html标签和asp.net服务器控件一起工作。 菲尔·哈克有一个很好的示例项目 ,将向您展示基础知识。

这个SO问题也对这种方法进行了深入的回顾。

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