确定ASPX页上的表单在JavaScript中是否有效的最佳方法是什么?
我试图检查使用JavaScript打开的用户控件的有效性,window.showModalDialog()
并检查服务器端的'Page.IsValid'属性不起作用。我正在使用ASP.NET验证控件进行页面验证。
Answers:
如果我的页面正在使用大量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/zh-cn/library/aa479045.aspx
您应该能够检查Page_IsValid对象,以查看任何验证控件是否无效。
您可以使用jQuery和Validation插件执行客户端验证。这将与html标记和asp.net服务器控件一起使用。 Phil Haack有一个很好的示例项目,它将向您展示基础知识。
这个SO问题也对该方法进行了深入的审查。
ValidationGroup
为asp.net
页面中的每个验证器控件设置属性,您必须在页面中提供相同的名称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
}
}