I am trying to add a RadCaptcha validation control to a page that allows file uploads. What is happening is that the file progress area is shown prior to Captcha validation, so if the Captcha is invalid, the user has to wait for the progress of the file upload before the message displays that they have type invalid Captcha text.
Is there any way around this to have the Captcha validate before the file upload progress happens?
Page code follows.
Is there any way around this to have the Captcha validate before the file upload progress happens?
Page code follows.
<%@ Page Language="VB" MasterPageFile="~/Master/master.master" AutoEventWireup="false" Inherits="xfers.test" ValidateRequest="false" Codebehind="test.aspx.vb" %> <asp:Content ID="Content1" ContentPlaceHolderID="MasterHolder" runat="server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> <style> .RadUpload .ruFakeInput { background-color: #dddddd; cursor:not-allowed; } .ruFileInput { cursor: pointer; } </style> <telerik:RadSkinManager ID="RadSkinManager1" runat="server" Skin="Windows7" /> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" > <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadScriptManager1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="Radprogressmanager1" /> <telerik:AjaxUpdatedControl ControlID="RadProgressArea1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="Radprogressmanager1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadProgressArea1" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadCodeBlock1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="Radprogressmanager1" /> <telerik:AjaxUpdatedControl ControlID="RadProgressArea1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <div style="position:absolute;z-index:1000;top:50%;left:30%;bottom:50%;right:50%;margin:auto;"> <telerik:RadProgressManager id="Radprogressmanager1" runat="server" /> <telerik:RadProgressArea id="RadProgressArea1" runat="server" onclientprogressbarupdating="onClientProgressBarUpdating" /> </div> <br /> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <table align="center" cellpadding="0" cellspacing="0"> <tr> <td> <asp:Label ID="lblErrMsg" runat="server" Visible="false" ForeColor="Red" Font-Bold="true" /> <table cellspacing="0" cellpadding="4" align="center" class="odehilite"> <tr> <td align="right" nowrap="nowrap">Browse for your file: </td> <td> <telerik:radupload id="fUpload" runat="server" maxfileinputscount="1" EnableFileInputSkinning="false" ControlObjectsVisibility="None" EnableEmbeddedBaseStylesheet="true" InputSize="50" Width="475px" OverwriteExistingFiles="true" ReadOnlyFileInputs="true" allowedfileextensions=".txt,.doc,.docx,.xls,.xlsx,.pdf,.htm,.html,.asp,.aspx,.ppt,.pptx,.pps,.ppsx,.csv,.gif,.jpg,.zip,.dat,.mdb,.xml,.smf,.dbf,.jpeg" maxfilesize="1073741824" /> </td> </tr> <tr> <th colspan="2"> Image Validation </th> </tr> <tr> <td align="center" colspan="2" style="padding-bottom: 1px;"> <telerik:RadCaptcha ID="RadCaptcha1" runat="server" ErrorMessage="Incorrect validation text entered" EnableRefreshImage="true" ValidatedTextBoxID="txtValidateImage" ValidationGroup="SubmitFile" > <CaptchaImage ImageCssClass="imageClass" EnableCaptchaAudio="true" BackgroundNoise="High" LineNoise="Medium" TextChars="LettersAndNumbers" TextLength="6" RenderImageOnly="true" /> </telerik:RadCaptcha> </td> </tr> <tr> <td align="center" colspan="2" style="padding-bottom: 1px;"> Text from image: <asp:TextBox ID="txtValidateImage" runat="server" MaxLength="6" ValidationGroup="SubmitFile" Font-Names="'Segoe UI', Arial, sans-serif" Font-Size="12px" ToolTip="Validate image." /> </td> </tr> <tr> <td colspan="2" align="center" style="padding: 0 0 2px 0;" > <table width="80%" cellpadding="0"> <tr> <td align="center"> <asp:Button ID="btnSubmitFile" runat="server" Text="Send File" CausesValidation="true" UseSubmitBehavior="true" CssClass="RadUploadSubmit" ValidationGroup="SubmitFile" /> </td> <td align="center"> <asp:Button ID="btnReset" runat="server" Text="Reset" CausesValidation="false" CssClass="RadUploadSubmit" /> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <script type="text/javascript"> var prm = Sys.WebForms.PageRequestManager.getInstance(); var originalClientSubmit; if (!originalClientSubmit) { originalClientSubmit = Telerik.Web.UI.RadProgressManager.prototype._clientSubmitHandler; } Telerik.Web.UI.RadProgressManager.prototype._clientSubmitHandler = function (e) { if (!prm._postBackSettings.async) { originalClientSubmit.apply(this, [e]); } } //<![CDATA[ function onClientProgressBarUpdating(progressArea, args) { progressArea.updateHorizontalProgressBar(args.get_progressBarElement(), args.get_progressValue()); args.set_cancel(true); } //]]> function findValidator(validid) { if (typeof (Page_Validators) == "undefined") return; for (var i = 0; i < Page_Validators.length; i++) { var vld = Page_Validators[i]; var str = vld.id; if (str.search(validid) > -1) return vld; } } function ValidatetxtMsg(source, arguments) { if (arguments.Value.indexOf("<") == -1 && arguments.Value.indexOf(">") == -1) { arguments.IsValid = true; } else { arguments.IsValid = false; } } </script> </telerik:RadCodeBlock> </asp:Content>