使用Captcha刷新时整个页面都会刷新

时间:2014-11-11 07:10:07

标签: html asp.net captcha

我已经使用了验证码刷新按钮来刷新验证码,但场景是当我点击刷新图像时,整个表单都会刷新。请帮忙。另请参阅以下代码: -

<table style="width: 583px;">
        <tr>
            <td>Name</td>
            <td>
                <asp:TextBox ID="TextBox1" runat="server" class="txtfld-popup"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please enter your Full Name" ControlToValidate="Fullname" Display="Dynamic" Style="font-size: 13px;"></asp:RequiredFieldValidator>
                <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender4" runat="server" TargetControlID="FullName" WatermarkText="Enter Your Full Name"></cc1:TextBoxWatermarkExtender>
            </td>
        </tr>
        <tr>
            <td>Contact No.</td>
            <td>
                <asp:TextBox ID="TextBox2" class="txtfld-popup" runat="server" MaxLength="10" onkeypress="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please enter Contact No." Display="Dynamic" ControlToValidate="ContactNo" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Style="font-size: 13px;"></asp:RequiredFieldValidator>
                <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Please enter valid Contact No." Display="Dynamic" ControlToValidate="ContactNo" ValidationExpression="^\d{10}$" Style="font-size: 13px;"></asp:RegularExpressionValidator>
                <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender5" runat="server" TargetControlID="ContactNo" WatermarkText="Enter Your Contact No."></cc1:TextBoxWatermarkExtender>
            </td>
        </tr>
        <tr>
            <td>Purpose </td>
            <td>
                <asp:TextBox ID="TextBox3" runat="server" class="txtfld-popup" ValidationGroup="VG"></asp:TextBox>
                <cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender6" runat="server" TargetControlID="Purpose" WatermarkText="Enter Your Purpose"></cc1:TextBoxWatermarkExtender>
            </td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>

                <div>
                    <cc1:CaptchaControl ID="CaptchaControl1" runat="server" CaptchaBackgroundNoise="Low" CaptchaLength="5"
                        CaptchaHeight="60" CaptchaWidth="200" CaptchaMinTimeout="5" CaptchaMaxTimeout="240"
                        FontColor="#D20B0C" NoiseColor="#B1B1B1" Width="150" />
                </div>
                &nbsp;&nbsp;
                               <asp:ImageButton ID="ImageButton2" ImageUrl="~/images/refresh.png" runat="server" CausesValidation="false" />
                <br />

                <asp:TextBox ID="TextBox4" runat="server" MaxLength="5"></asp:TextBox>

                <asp:CustomValidator ID="CustomValidator2" ErrorMessage="Invalid. Please try again." OnServerValidate="ValidateCaptcha"
                    runat="server" />
                <p style="margin-top: 3px; margin-bottom: 3px;">
                    <asp:Label ID="Label1" runat="server"></asp:Label>
                </p>
            </td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>
                <asp:Button ID="Button1" runat="server" Text="Submit" OnClick="btnSend_Click" class="button-form" Width="100" />
                <asp:Button ID="Button2" runat="server" Text="Reset" OnClick="btnReset_Click" class="button-form" Width="100" CausesValidation="false" /></td>
        </tr>

另请参阅后面的代码供您参考: -

protected void ValidateCaptcha(object sender, ServerValidateEventArgs e)
{
    Captcha1.ValidateCaptcha(txtCaptcha.Text.Trim());
    e.IsValid = Captcha1.UserValidated;
    if (e.IsValid)
    {
        ClientScript.RegisterClientScriptBlock(this.GetType(), "ResponseDialog", "$(document).ready(function(){ResponseDialog();});", true);
        SendMail();
    }
}

请帮忙

1 个答案:

答案 0 :(得分:0)

最后为解决方案添加了更新面板: -

  <tr>
                        <td>&nbsp;</td>
                        <td>
                            <div>
                                <asp:UpdatePanel ID="updatePanel" UpdateMode="Conditional" runat="server">
                                    <ContentTemplate>
                                        <table>
                                            <tr>
                                                <td>
                                                    <cc1:CaptchaControl ID="Captcha1" runat="server" CaptchaBackgroundNoise="Low" CaptchaLength="5"
                                                        CaptchaHeight="60" CaptchaWidth="200" CaptchaMinTimeout="5" CaptchaMaxTimeout="240"
                                                        FontColor="#D20B0C" NoiseColor="#B1B1B1" />
                                                </td>
                                                <td>
                                                    <asp:ImageButton ID="ImgRefreshButton" ImageUrl="~/images/refresh.png" runat="server" CausesValidation="false" />
                                                </td>
                                            </tr>

                                        </table>
                                    </ContentTemplate>
                                    <Triggers>
                                        <asp:AsyncPostBackTrigger ControlID="ImgRefreshButton" EventName="Click" />
                                    </Triggers>
                                </asp:UpdatePanel>
                                <asp:TextBox ID="txtCaptcha" runat="server" MaxLength="5"></asp:TextBox>

                                <asp:CustomValidator ID="CustomValidator1" ErrorMessage="Invalid. Please try again." OnServerValidate="ValidateCaptcha"
                                    runat="server" />


                                <p style="margin-top: 3px; margin-bottom: 3px;">
                                    <asp:Label ID="lblLeaveNo2" runat="server"></asp:Label>
                                </p>
                        </td>
                    </tr>

它对我有用。 :)