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

Posted

技术标签:

【中文标题】确定页面在 JavaScript 中是不是有效 - ASP.NET【英文标题】:Determine if page is valid in JavaScript - ASP.NET确定页面在 JavaScript 中是否有效 - ASP.NET 【发布时间】:2010-11-07 04:49:39 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

您回答并阅读以下帖子:velocityreviews.com/forums/… 帮助我解决了我的问题。 如果页面上有多个验证组,我如何修改上面的代码,我只需要检查一个组是否有效? 更新 - 我删除了 Page_ClientValidate() 调用并且它有效:) 另请参阅 ***.com/a/3062770/292060 以获取此调用的参数,解决多个验证组。 你真是太棒了。谢谢。【参考方案2】:

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

【讨论】:

我忘了提到我正在检查服务器端的 Page.IsValid 属性,它不起作用。【参考方案3】:

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

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

【讨论】:

【参考方案4】:
$("input[id$=Button2]").click(function () 
    var validated = Page_ClientValidate('repo');
    if (validated) 
        // JavaScript code.
    
);

【讨论】:

【参考方案5】:

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

此SO question 也对这种方法进行了深入审查。

【讨论】:

【参考方案6】:

为页面中的每个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


【讨论】:

以上是关于确定页面在 JavaScript 中是不是有效 - ASP.NET的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 JavaScript 确定页面是不是安全? [复制]

Javascript window.location.href - 刷新页面而不是重定向

使用 javascript/jquery 检测 Asp.Net 表单是不是有效

如何确定变量是不是未定义[重复]

如何确定经纬度坐标在坐标系中是不是有效?

Java中有没有办法在不尝试创建文件的情况下确定路径是不是有效?