确定页面在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.net
validation器控件设置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 } }