我正在尝试为我正在处理的网站创建一个弹出登录表单,所以我决定尝试使用facebox。登录弹出正常,但提交按钮和所需的验证器未触发。这是在母版页中,包含在进度面板中。
在页眉中,我有:
<script type="text/javascript">
$(document).ready(function () {
$('a[rel*=facebox]').facebox();
});
</script>
在表格的顶部,我有这个链接:
<a href="#logon_form" rel="facebox">Logon</a>
这是打开下面列出的图层:
<div id="logon_form" style="display:none;">
<table cellpadding="3" cellspacing="0" border="0" class="centered">
<tr>
<td>Email:</td>
<td><asp:TextBox ID="TextLogonEmail" runat="server" CssClass="inputtext" ValidationGroup="LogonGroup" Columns="35" MaxLength="320"></asp:TextBox></td>
<td><asp:RequiredFieldValidator ID="RequiredLogonEmail" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="TextLogonEmail" ValidationGroup="LogonGroup" CssClass="error">required</asp:RequiredFieldValidator></td>
</tr>
<tr>
<td>Password:</td>
<td><asp:TextBox ID="TextLogonPassword" runat="server" CssClass="inputtext" TextMode="Password" ValidationGroup="LogonGroup" Columns="35" MaxLength="40"></asp:TextBox></td>
<td><asp:RequiredFieldValidator ID="RequiredLogonPassword" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="TextLogonPassword" ValidationGroup="LogonGroup" CssClass="error">required</asp:RequiredFieldValidator></td>
</tr>
<tr>
<td> </td>
<td colspan="2"><asp:Button ID="ButtonLogon" runat="server" Text="Logon" ValidationGroup="LogonGroup" onclick="ButtonLogon_Click" /></td>
</tr>
</table>
</div>
有什么想法吗?
答案 0 :(得分:1)
尝试Page.Validate("LogonGroup")
,或者如果您想使用Javascript调用它,请尝试:
function myFunction(group)
{
if (Page_ClientValidate(group))
{ Something(); }
}
<强> - 编辑 - 强>
您可以在ButtonLogon_Click
活动中提供。像,
Page.Validate("LogonGroup")
if(Page.IsValid())
{
//Continue.
}
else
{
ShowValidationSummary();
}
理想情况下,您的代码应该有效。我会在LogonForm Div
中添加ValidationSummary
。比如:
<div id="logon_form" style="display:none;">
<table cellpadding="3" cellspacing="0" border="0" class="centered">
<tr>
<td>
<asp:ValidationSummary id="LogonGroup"
DisplayMode="BulletList"
EnableClientScript="true"
HeaderText="You must enter a value in the following fields:"
runat="server"/>
</td>
</tr>
<tr>
<td>Email:</td>
<td><asp:TextBox ID="TextLogonEmail" runat="server" CssClass="inputtext" ValidationGroup="LogonGroup" Columns="35" MaxLength="320"></asp:TextBox></td>
<td><asp:RequiredFieldValidator ID="RequiredLogonEmail" runat="server" ErrorMessage="RequiredFieldValidator" ControlToValidate="TextLogonEmail" ValidationGroup="LogonGroup" CssClass="error">required</asp:RequiredFieldValidator></td>
</tr>
...
因此,当您单击登录按钮时,它将在那里显示验证摘要。