我似乎不知道这不起作用。
我有一个按钮,可以js
调用以fancybox
模式打开表单,这样就可以了。
然后,我可以使用asp.validation验证表单中的数据,并在需要时在组div
中抛出消息。
但是,当我尝试提交表单时,它没有做任何事情。
<asp:TextBox ID="MIEmailTextBox" runat="server" Text="email address" CssClass="MIEmailFieldTextBox"></asp:TextBox><asp:Button ID="MIEmailFieldSubmitButton" runat="server" Text="Submit" CssClass="buttonPositive" OnClientClick="return NextClick()" />
Js打开打开div内容的fancybox。
function NextClick() {
var emailAddress = $("[id$='_MIEmailTextBox']").val();
if (emailAddress != "email address" && emailAddress != "") {
$("[id$='Email']").val(emailAddress);
$.fancybox({
'width': 480,
'height': 360,
'autoScale': false,
'modal': false,
'autoDimensions': false,
'centerOnScroll': true,
'title': 'Enews Signup',
'titlePosition': 'over',
'href': '#popupdiv',
'onComplete': function () {
$("#fancybox-inner").css({ 'top': '50px', 'bottom': 'auto', 'height': '320px' });
}
});
return false;
}
}
使用验证
在模态中打开此div<div style="display: none;">
<div id="popupdiv">
<div id="PopupMessageDiv" runat="server">
<asp:HiddenField ID="CinemaIdHiddenField" runat="server" />
<asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
<asp:ValidationSummary ID="ValidationSummary1" CssClass="validationSummary" ValidationGroup="CreateUserWizard1"
runat="server" HeaderText="<span>Sorry, there were some problems with your information:</span>" />
<div id="ConfirmDetailsDiv" runat="server" visible="false" class="validationSummary positive">
<span>Almost done! </span>
<p>
Please review your details below before submitting your payment.<br />
</p>
</div>
<div class="form-row form-required">
<asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">E-mail:</asp:Label>
<asp:TextBox ID="Email" runat="server" CssClass="ModalFieldTextBox" ToolTip="Please enter your <strong>E-mail address</strong>."
MaxLength="98"></asp:TextBox>
<asp:CustomValidator ID="EmailCustomValidator" runat="server" ErrorMessage="Sorry, that <strong>Email address</strong> is already registered."
ControlToValidate="Email" Display="None" ValidationGroup="CreateUserWizard1"></asp:CustomValidator>
<asp:RegularExpressionValidator ID="EmailRegularExpressionValidator" runat="server"
ControlToValidate="Email" Display="None" ErrorMessage="Your <strong>Email address</strong> does not appear to be correct. "
ValidationExpression="(\w[-._\w]*@\w[-._\w]*\w\.\w{2,3})" EnableClientScript="true"
ValidationGroup="CreateUserWizard1"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="EmailRequiredFieldValidator" runat="server" ControlToValidate="Email"
ErrorMessage="You must enter an <strong>Email address</strong>." EnableClientScript="true"
ValidationGroup="CreateUserWizard1" Display="None" SetFocusOnError="False"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator1" runat="server" Display="None" EnableClientScript="False"
ErrorMessage="CustomValidator" ValidationGroup="CreateUserWizard1"></asp:CustomValidator>
</div>
<br />
<div class="form-row form-required">
<asp:Label ID="EmailConfirmLabel" runat="server" AssociatedControlID="EmailConfirm">
Confirm E-mail:
</asp:Label>
<asp:TextBox ID="EmailConfirm" runat="server" CssClass="ModalFieldTextBox" ToolTip="Please enter your <strong>E-mail address</strong>."
MaxLength="98"></asp:TextBox>
<asp:CompareValidator ID="EmailCompareValidator" runat="server" EnableClientScript="true"
ControlToCompare="Email" ControlToValidate="EmailConfirm" Display="None"
ValidationGroup="CreateUserWizard1" ErrorMessage="Your email address does not match!"></asp:CompareValidator>
</div>
<br />
<div class="form-row form-required">
<asp:Label ID="PostCodeLabel" runat="server" AssociatedControlID="PostCode">
Post Code:</asp:Label>
<asp:TextBox ID="PostCode" runat="server" CssClass="ModalFieldTextBox" MaxLength="4"></asp:TextBox>
<ajaxToolkit:FilteredTextBoxExtender ID="PostCode_FilteredTextBoxExtender" runat="server"
Enabled="True" FilterType="Numbers" TargetControlID="PostCode">
</ajaxToolkit:FilteredTextBoxExtender>
<asp:RegularExpressionValidator ID="re6" ControlToValidate="PostCode" runat="server"
ValidationGroup="CreateUserWizard1" ValidationExpression="^.{2,}$" ErrorMessage="A postcode must have at least 2 characters."
ToolTip="A postcode must have at least 2 characters." Display="None" EnableClientScript="False"></asp:RegularExpressionValidator>
<asp:RegularExpressionValidator ID="PostCodeRegularExpressionValidator" runat="server"
ControlToValidate="PostCode" Display="None" ErrorMessage="Sorry, your Post Code must only contain numbers."
ValidationExpression="^[^<^>]*$" ValidationGroup="CreateUserWizard1" SetFocusOnError="True"
EnableClientScript="False"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="PostCodeRequiredFieldValidator" runat="server" ErrorMessage="Please enter your <strong>Post Code</strong>."
ControlToValidate="PostCode" Display="None" ValidationGroup="CreateUserWizard1"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="PostCodeCustomValidator1" runat="server" ControlToValidate="PostCode"
Display="None" ValidationGroup="CreateUserWizard1" EnableClientScript="False"></asp:CustomValidator>
</div>
<br />
<div class="form-row form-required">
<span> </span>
<asp:Button ID="CreateSubcriberButton" runat="server" Text="Create Subscriber" CssClass="buttonPositive"
ValidationGroup="CreateUserWizard1" CausesValidation="true" OnClick="CreateSubcriberButton_Click" OnClientClick="return true;"/>
</div>
</div>
</div>
但是当我点击CreateSubcriberButton时它没有做任何事情。 它应该由代码behide
处理protected void CreateSubcriberButton_Click(object sender, EventArgs e)
{
Response.Redirect("http://google.com.au");
}
我检查了元素,然后返回
<input type="submit" name="ctl00$BelowHeaderContentPlaceHolder$ctl00$CreateSubcriberButton" value="Create Subscriber" onclick="return true;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$BelowHeaderContentPlaceHolder$ctl00$CreateSubcriberButton", "", true, "CreateUserWizard1", "", false, false))" id="ctl00_BelowHeaderContentPlaceHolder_ctl00_CreateSubcriberButton" class="buttonPositive">
我尝试删除所有的asp:validation控件并执行正常的表单提交,但没有运气
可能是模态吗?
我一直在使用这个asp:button事件处理程序方法,当我尝试在模态中添加表单时,它一直工作到现在。
任何帮助将不胜感激。