【发布时间】:2010-11-07 04:49:39
【问题描述】:
确定 ASPX 页面上的表单在 JavaScript 中是否有效的最佳方法是什么?
我正在尝试检查使用 JavaScript window.showModalDialog() 打开的用户控件的验证,并且检查服务器端的“Page.IsValid”属性不起作用。我正在使用 ASP.NET 验证控件进行页面验证。
【问题讨论】:
标签: asp.net javascript validation
确定 ASPX 页面上的表单在 JavaScript 中是否有效的最佳方法是什么?
我正在尝试检查使用 JavaScript window.showModalDialog() 打开的用户控件的验证,并且检查服务器端的“Page.IsValid”属性不起作用。我正在使用 ASP.NET 验证控件进行页面验证。
【问题讨论】:
标签: asp.net javascript validation
如果我有一个使用一堆 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>
【讨论】:
Page_ClientValidate() 调用并且它有效:)
您正在检查 Page.IsValid,您应该检查 Page_IsValid(它是 .NET 验证器公开的变量):)
【讨论】:
ASP.NET 验证控件公开了一个可以与 javascript 一起使用的客户端 API:http://msdn.microsoft.com/en-us/library/aa479045.aspx
您应该能够检查 Page_IsValid 对象以查看是否有任何验证控件无效。
【讨论】:
$("input[id$=Button2]").click(function () {
var validated = Page_ClientValidate('repo');
if (validated) {
// JavaScript code.
}
});
【讨论】:
您可以使用 jQuery 和 Validation 插件来执行客户端验证。这将适用于 html 标记和 asp.net 服务器控件。 Phil Haack has a good sample project 将向您展示基础知识。
此SO question 也对这种方法进行了深入审查。
【讨论】:
为页面中的每个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
}
}
【讨论】: