Thursday, March 7, 2019

Recaptcha form accepts one value but then on every other entry it passes the form even if captcha is incorrect

<div id="Div_CompareSelectedDevices" class="container"> <div> <div class="row"> <div id="Div_ComparePhonesResultsTitle" class="col-xl-12"><h2><asp:Label ID="lblCompare" runat="server" ></asp:Label></h2></div> </div> <div class="row right"> <div id="Div_Email_Print"> <a id="EmailIcon" href="#" class="EmailIcon" role="button" data-toggle="modal" data-target="#EmailDialogue"><asp:Image ID="ImageEmailIcon" runat="server" class="EmailIconImage"/></a> <asp:ImageButton ID="imgBtnPrint" runat="server" onclick="imgBtnPrint_Click" CssClass="PrintButtonIcon" CausesValidation="False"/> </div> </div> </div> <table id="tblDevices" runat="server" class="tblDevices"> <tr class="CompareTop"> <td class="column-specs"></td> <td class="ProductDropDown column-phone"> <div class="prodSelector"> <div class="ELWireless_Styled_Select_Medium"> <asp:DropDownList ID="ddlProduct1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlProduct_SelectedIndexChanged" CssClass="form-control"> </asp:DropDownList> </div> </div> </td> <td class="ProductDropDown column-phone"> <div class="prodSelector"> <div class="ELWireless_Styled_Select_Medium"> <asp:DropDownList ID="ddlProduct2" runat="server" AutoPostBack="True" onselectedindexchanged="ddlProduct_SelectedIndexChanged" CssClass="form-control"> </asp:DropDownList> </div> </div> </td> </tr> </table> </div> <div id="EmailDialogue" class="EmailDialogue modal fade" role="dialog" data-keyboard="true"> <div id="emailcontent" class="emailContent emailContent--position1 modal-dialog" role="document" runat="server"> <div class="close-it"> <h2><asp:Label ID="lblEmailTitle" runat="server" Text=""></asp:Label></h2> <a href="#" class="close-btn" data-dismiss="modal" aria-label="Close" tabindex="0"> CLOSE <span class="icn material-icons">close</span> </a> </div> <div class="emailFunctionContainer el-form clearfix"> <div class="row"> <div class="input-group"> <asp:Label ID="lblEmailTo" CssClass="lblEmail" runat="server" ></asp:Label> <asp:TextBox ID="txtEmailTo" runat="server" CssClass="txtEmailTo form-control" ViewStateMode="Enabled" ></asp:TextBox> <asp:RequiredFieldValidator ID="rfvEmail" runat="server" CssClass="error" ControlToValidate="txtEmailTo" Display="Dynamic" ErrorMessage="" /> </div> </div> <div class="row"> <div class="input-group"> <dnn:DnnCaptcha ID="ctlCaptcha" EnableRefreshImage="True" CaptchaImage-EnableCaptchaAudio="true" runat="server" CaptchaAudioLinkButtonText="" CaptchaTextBoxCssClass="txtEmailTo short" CssClass="email-form-captcha" /> </div> </div> <div class="row"> <div class="input-group"> <asp:LinkButton ID="btnSendEmail" runat="server" CssClass="btn" onclick="btnSendEmail_Click" OnClientClick="ValidatePage()"></asp:LinkButton> </div> </div> </div> </div> <div id="emailSuccess" class="emailContent emailContent--position2 modal-dialog" role="document" runat="server" visible="false"> <div class="close-it"> <h2><asp:Label ID="Label1" runat="server" Text=""></asp:Label></h2> <a href="#" class="close-btn" data-dismiss="modal" aria-label="Close" tabindex="0" id="A1" runat="server" onclick="CloseWindow(); return false;"> CLOSE <span class="icn material-icons">close</span> </a> </div> <div class="emailFunctionContainer"> <p id="emailStatus" runat="server" class="status"></p> </div> </div> </div> 

This is the code for the form

This is the code for the validation:

<script type="text/javascript"> jQuery(document).ready(function () { //jQuery("#EmailIcon").fancybox({ 'centerOnScroll': true, 'showCloseButton': false, 'modal': true, 'overlayShow': true, 'transitionIn': 'none', 'transitionOut': 'none' }); if (<%=openDialog %>) { jQuery('#EmailIcon').click(); } else {jQuery('#<%=emailSuccess.ClientID %>').hide(); jQuery('#<%=emailcontent.ClientID %>').show();} //Scripts to hide and move Prepaid/Refreshed pricing jQuery("td.tHeaderLabel:contains('HiddenPricing'), td.tHeaderLabel:contains('DisplayOptions'), td.tHeaderLabel:contains('PlanOptionProperties')").each(function () { //Starts hiding at "HiddenPricing" header and stops at next header jQuery(this).parents('tr').hide(); jQuery(this).parents('tr').nextUntil("tr.trHeader").hide(); }); }); function ValidatePage() { if (typeof (Page_ClientValidate) == 'function') Page_ClientValidate(); if (Page_IsValid) jQuery.fancybox.close(); } function CloseWindow() { jQuery('#<%=txtEmailTo.ClientID %>').val(''); jQuery('#<%=emailSuccess.ClientID %>').hide(); jQuery('#<%=emailcontent.ClientID %>').show(); } </script> 

I think the ValidatePage() is the issue, thoughts? or any direction is heplful

Recaptcha form accepts one value but then on every other entry it passes the form even if captcha is incorrect Click here
  • Blogger Comment
  • Facebook Comment

0 comments:

Post a Comment

The webdev Team