Asp.net按钮事件处理程序无法使用验证?

时间:2015-07-14 11:44:07

标签: javascript jquery html css asp.net

我似乎不知道这不起作用。
我有一个按钮,可以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(&quot;ctl00$BelowHeaderContentPlaceHolder$ctl00$CreateSubcriberButton&quot;, &quot;&quot;, true, &quot;CreateUserWizard1&quot;, &quot;&quot;, false, false))" id="ctl00_BelowHeaderContentPlaceHolder_ctl00_CreateSubcriberButton" class="buttonPositive">

我尝试删除所有的asp:validation控件并执行正常的表单提交,但没有运气 可能是模态吗?
我一直在使用这个asp:button事件处理程序方法,当我尝试在模态中添加表单时,它一直工作到现在。
任何帮助将不胜感激。

0 个答案:

没有答案