/// function validatenumerics(key) { //getting key code of pressed key var keycode = (key.which) ? key.which : key.keyCode; //comparing pressed keycodes if (keycode > 31 && (keycode < 48 || keycode > 57)) { return false; } else return true; }; //$.validator.messages.wordcount = 'Please enter no more than {0} words'; //$.validator.messages.alphanumeric = 'This field can only contain letters and numbers'; $.validator.addMethod("vmaxlength", $.validator.methods.maxlength, LFValidations.vmaxlength); $.validator.addMethod('rbrequired', function (value, element) { if ($(element).closest('.Field.Radiobutton').find("input:checked").length == 1 && $(element).closest('.Field.Radiobutton').find("input:checked").val() == "&%&" && $(element).closest('.Field.Radiobutton').find('input[type=hidden]').val() == "") { return false; } else return true; }, LFValidations.required); $.validator.addMethod('cbrequired', function (value, element) { if ($(element).closest('.Field.Checkbox').find("input:checked").length == 1 && $(element).closest('.Field.Checkbox').find("input:checked").val() == "&%&" && $(element).closest('.Field.Checkbox').find('input[type=hidden]').val() == "") { return false; } else if ($(element).closest('.Field.Checkbox').find("input:checked").length < 1) return false; else return true; }, LFValidations.cbrequired); $.validator.addMethod('matrixCbrequired', function (value, element) { if ($(element).closest('tr').find("input:checked").length < 1) return false; else return true; }, LFValidations.required); $.validator.addMethod('matrixddlrequired', function (value, element) { if ($(element).find('option:selected').index() == 0) return false; else return true; }, LFValidations.required); $.validator.addMethod('checkCaptcha', function (value, element) { if ($(element).closest('.Field.Checkbox').find("input:checked").length < 1) return false; else return true; }, LFValidations.cbrequired); $.validator.addMethod('wordcount', function (value, element) { var wordCount = $(element).attr('wordcount'); if ($(element).val().split(" ").length > wordCount) return false; else return true; }, LFValidations.wordcount); $.validator.addMethod('alphanumeric', function (value, element) { var ele = $(element).val(); if (ele != "") { var re = /^[a-zA-Z0-9]+$/; if (re.test(ele)) return true; else return false; } else return true; }, LFValidations.alphanumeric); $.validator.addMethod('alphabetic', function (value, element) { var ele = $(element).val(); if (ele != "") { var re = /^[a-zA-Zs]+$/; if (re.test(ele)) return true; else return false; } else return true; }, LFValidations.alphabetic); $.validator.addMethod('numeric', function (value, element) { var ele = $(element).val(); if (ele != "") { var re = new RegExp("^[0-9]{" + ele.length + "}$"); if (re.test(ele)) return true; else return false; } else return true; }, LFValidations.numeric); $.validator.addMethod('custom', function (value, element) { if ($(element).parent().children('.customsetting').html() != "") { var re = new RegExp($(element).parent().children('.customsetting').html()); if (re.test(value)) return true; else return false; } else return true; }, LFValidations.custom); $.validator.addMethod('scorerequired', function (value, element) { if ($(element).parent().find('div input[type=hidden]').val() == "") return false; else return true; }, LFValidations.scorerequired); $.validator.addMethod('scalerequired', function (value, element) { if ($(element).parent().parent().find('input[type=radio]').is(":checked") == true) return true; else return false; }, LFValidations.scalerequired); $.validator.addMethod('isvaliddate', function (value, element) { var month, day, year, hour, minute; if ($(element).val() != "") { $($(element).parent().parent().find('span.Field-SubLabel-TextBox')).each(function (index, item) { if ($(item).find('input').length != 0) { if ($(item).find('input').attr('class').indexOf("datepicker_month") != -1) month = $(item).find('input').val(); else if ($(item).find('input').attr('class').indexOf("datepicker_day") != -1) day = $(item).find('input').val(); else if ($(item).find('input').attr('class').indexOf("datepicker_year") != -1) year = $(item).find('input').val(); } if ($(item).find('select').length != 0) { if ($(item).find('select').attr('class').indexOf("datepicker_month") != -1) month = $(item).find('select').val(); if (month == "0") month = ""; if ($(item).find('select').attr('class').indexOf("datepicker_hour") != -1) hour = $(item).find('select').val(); else if ($(item).find('select').attr('class').indexOf("datepicker_minute") != -1) minute = $(item).find('select').val(); } }); if (month == undefined) month = ""; if (day == undefined) day = ""; if (year == undefined) year = ""; if (hour == undefined) hour = ""; if (minute == undefined) minute = ""; if (month != "" && day != "" && year != "" && hour != "" && minute != "") { var dt = new Date(parseInt(year, 10), parseInt(month, 10) - 1, parseInt(day, 10), parseInt(hour, 10), parseInt(minute, 10), 00, 00); if (dt.getDate() != parseInt(day, 10) || dt.getMonth() != (parseInt(month, 10) - 1) || dt.getFullYear() != parseInt(year, 10)) { return false; } else return true; } else if (month != "" && day != "" && year != "" && hour == "" && minute == "") { var dt = new Date(parseInt(year, 10), parseInt(month, 10) - 1, parseInt(day, 10), 00, 00, 00, 00); if (dt.getDate() != parseInt(day, 10) || dt.getMonth() != (parseInt(month, 10) - 1) || dt.getFullYear() != parseInt(year, 10)) { return false; } else return true; } else if (month == "" && (day != "" || year != "")) return false; else if (day == "" && (month != "" || year != "")) return false; else if (year == "" && (day != "" || month != "")) return false; else if (year == "" && day == "" && month == "" && (hour != "" || minute != "")) return false; else if (year != "" && day != "" && month != "" && (hour == "" || minute == "")) return false; else return true; } else return true; }, LFValidations.isvaliddate); $.validator.addMethod('furequired', function (value, element) { if ($(element).parent().find('.plupload_content').length == 0) return true; if ($(element).parent().find('.plupload_content').attr('controlid').length > 0) { var object = $(element).parent().find('.plupload_content').attr('controlid') + ".files.length==0"; var resume = true; if ($(element).parent().find('.fileresume').length > 0) { var val = $("#" + $(element).parent().find('.fileresume').attr('id')).val(); if (val !== null && val.trim() !== '') { resume = false; } } if (eval(object) && resume) return false; else return true; } else return true; }, LFValidations.furequired); $.validator.addMethod('fbrequired', function (value, element) { var ele = $(element).val(); if (ele) { return true; } else return false; }, LFValidations.fbrequired); $(document).ready(function () { $(".Field.Phone input[type=text].phone").each(function (index) { if (typeof $(this).attr("placeholder") != 'undefined') $("#" + $(this).attr("id")).mask($(this).attr("placeholder"), { clearIfNotMatch: true }); }); $(".Field.Textbox input[type=text].mask").each(function (index) { if (typeof $(this).attr("placeholder") != 'undefined') $("#" + $(this).attr("id")).mask($(this).attr("placeholder"), { clearIfNotMatch: true }); }); $(".Field.Password .strength").each(function (index) { var options = {}; options.ui = { container: "#" + $(this).attr("id"), showVerdictsInsideProgressBar: true, progressBarEmptyPercentage: 0, progressBarMinPercentage: 25, viewports: { progress: "#" + $(this).attr("id") + "_viewport_progress" } }; $("#" + $(this).attr("id") + '_Password').pwstrength(options); $("#" + $(this).attr("id") + '_Password').pwstrength("addRule", "testRule" + index, function (options, word, score) { return word.match(/[0-9]/) && score; }, 5, true); }); $('.Field.Required.Fileupload input').attr("furequired", "furequired"); $(".Field.Required.Fileupload input.fileresume").removeAttr('furequired'); $('.Field.CkEditor.Required div.Field-Container-Wide').attr("editorrequired", "true"); $('.Field.CkEditor.Required div.Field-Container').attr("editorrequired", "true"); $(".Field.CkEditor").each(function (index) { if (typeof $(this).attr("guid") != 'undefined') { var GUID = $(this).attr("guid").replace(/-/g, ''); $(this).addClass('ck' + GUID.toLowerCase() + 'ck'); } }); //Do Not Validate Required on Hidden Fields such as Allow Other in Radiobutton/Checkboxes $('.Field input[type=hidden]').addClass("nrequired"); //Validate Required on All Inputs, Textareas & Selects Except Checkbox and those that explictly have "nrequired" class $(".Field.Required:not(.Checkbox) input:not(.nrequired),.Field.Required select,.Field.Required textarea").attr("required", ""); //Validate Required on Radiobutton other fieds validate $(".Field.Required.Radiobutton input[type=radio]:not(.nrequired)").attr("rbrequired", "rbrequired"); //Validate Required on Tag $(".Field.Tag.Required input").attr("tagrequired", "tagrequired"); $('.Field.Tag.Required div.Field-Container-Wide').attr("tagrequired", "true"); $('.Field.Tag.Required div.Field-Container').attr("tagrequired", "true"); $(".Field.SingleReference.Required input").attr("tagrequired", "tagrequired"); $('.Field.SingleReference.Required div.Field-Container-Wide').attr("tagrequired", "true"); $('.Field.SingleReference.Required div.Field-Container').attr("tagrequired", "true"); $(".Field.MultiReference.Required input").attr("tagrequired", "tagrequired"); $('.Field.MultiReference.Required div.Field-Container-Wide').attr("tagrequired", "true"); $('.Field.MultiReference.Required div.Field-Container').attr("tagrequired", "true"); //Add attribute for Captcha $('.Field.Captcha .mliveformcaptcha .textarea').attr("aria-label", "No value"); //Validate Required on Checkbox $(".Field.Required.Checkbox input[type=checkbox]:not(.nrequired)").attr("cbrequired", "cbrequired"); //Validate Required on matrix checkbox $(".Field.Required.Matrix input[type=checkbox]").removeAttr('required'); $(".Field.Required.Matrix input[type=checkbox]").attr("matrixCbrequired", "matrixCbrequired"); $(".Field.Matrix input[type=checkbox]").attr("aria-label", "Close"); $(".Field.Matrix input[type=radio]").attr("aria-label", "Close"); //Validate Required on matrix dropdownlist $(".Field.Required.Matrix select").removeAttr('required'); $(".Field.Required.Matrix select").attr("matrixddlrequired", "matrixddlrequired"); //Validate Email $(".Field.Email input[type=text]").attr("email", "email"); //Validate Cutom in Email field $(".Field.Email.Custom input[type=text]").removeAttr('email'); $(".Field.Email.Custom input[type=text]").attr("custom", "custom"); //Validate CreditCard jQuery(window).on('load', function () { $(".Field.Fileupload input[type=file]").attr("aria-readonly", "true"); let textarea = document.getElementById("g-recaptcha-response"); if (textarea != null) { textarea.setAttribute("aria-hidden", "true"); textarea.setAttribute("aria-label", "do not use"); textarea.setAttribute("aria-readonly", "true"); } }); //Validate Alphanumeric $(".Field.AlphaNumeric input[type=text]").attr("alphanumeric", "alphanumeric"); //Validate Custom $(".Field.Textbox.Custom input[type=text]").attr("custom", "custom"); $(".Field.Textarea.Custom textarea").attr("custom", "custom"); //Validate Alphabetic $(".Field.Alphabetic input[type=text]").attr("alphabetic", "alphabetic"); //Validate Numeric $(".Field.Numeric input[type=text]").attr("numeric", "numeric"); $(".Field.CreditCard input[type=text].CVV").attr("numeric", "numeric"); // Validate Datetime $(".Field.Datetime input[type=text]").attr("isvaliddate", "isvaliddate"); $(".Field.Datetime select").attr("isvaliddate", "isvaliddate"); // Validate BirthDate $(".Field.Birthdate input[type=text]").attr("isvaliddate", "isvaliddate"); $(".Field.Birthdate select").attr("isvaliddate", "isvaliddate"); //Validate StarRating $(".Field.Required.StarRating input[type=hidden].starratinghidden").removeClass('nrequired').attr("scorerequired", "scorerequired"); //Validate ScaleRating $(".Field.Required.ScaleRating input[type=hidden]").attr("scalerequired", "scalerequired"); $(".Field.Required.ScaleRating input[type=radio]").removeAttr('required'); $(".Field.BrowseFile.Required input[required=required]").removeAttr('required'); //Handle Required on Radiobutton & Checkbox Allow Other //Code Commented since Valiation Plugin is unable to handle the error placement for a Textbox that's inside a label //$('.Field.Radiobutton input:not([type=hidden]),.Field.Checkbox input[type=checkbox]:not([type=hidden])').change(function () { // if ($(this).val() == 'Other') { // $(this).closest('.Field-Container').find('input[type=text]').removeClass('nrequired').attr('required', ''); // } else { // $(this).closest('.Field-Container').find('input[type=text]').addClass('nrequired').removeAttr('required'); // } //}); // Initialize validation on the entire ASP.NET form. jQuery.validator.setDefaults({ //debug: true, onsubmit: false, ignore: ".novalidate", rules: { success: function (error) { error.remove(); } }, errorPlacement: function (error, element) { if (element.closest('.ms-form-group').hasClass("Radiobutton") || element.closest('.ms-form-group').hasClass("Checkbox")) { error.appendTo(element.closest('.ms-form-group')); return; } else if (element.closest('.Field').hasClass("Radiobutton")) { error.insertAfter(element.closest('.Field').find('.Field-Container')); error.insertAfter(element.closest('.Field').find('.Field-Container-Wide')); return; } else if (element.closest('.Field').hasClass("Matrix")) { if ($(element).attr('type') == 'radio' || $(element).attr('type') == 'checkbox') { if ($(element).closest('tr').find('.tdBlank').find('.error').length < 1) element.closest('tr').find('.tdBlank').append(error); return; } else if ($(element).attr('type') == 'text' || $(element).attr('type') == 'number' || $(element).is('select')) { $(element).closest('tbody').find('.tdBlank').find('.error').remove(); $(element).closest('tbody').find('.tdBlank').first().append(error); return; } } else if (element.closest('.Field').hasClass("Phone")) { if (element.hasClass('AreaCode')) return; } else if (element.closest('.Field').hasClass("Checkbox") || element.closest('.Field').hasClass("Datetime") || element.closest('.Field').hasClass("Time") || element.closest('.Field').hasClass("Birthdate") || element.closest('.Field').hasClass("Fullname") || element.closest('.Field').hasClass("Address")) { if (element.closest('.Field').find('label.error').length == 0 || (element.closest('.Field').find('label.error').length > 0 && element.closest('.Field').find('label.error').is(":visible") == false)) { error.insertAfter(element.closest('.Field').find('.Field-Container')); error.insertAfter(element.closest('.Field').find('.Field-Container-Wide')); } return; } error.insertAfter(element); } }); //$("#form1").validate({ // // This prevents validation from running on every // // form submission by default. // onsubmit: false, //}); // Search for controls marked with the causesValidation flag // that are contained anywhere within elements marked as // validationGroups, and wire their click event up. $('.validationGroup .causesValidation').click(ValidateAndSubmit); $('.validationGroup .SaveAndResume').click(SaveAndResume); // Select any input[type=text] elements within a validation group // and attach keydown handlers to all of them. $('.validationGroup :password,.validationGroup :text').keydown(function (evt) { // Only execute validation if the key pressed was enter. if (evt.keyCode == 13) { ValidateAndSubmit(evt); } }); }); function SaveAndResume() { //Finish client side operations $('.Field.Currency input').each(function () { $(this).select(); $(this).next().val($(this).maskMoney('unmasked')[0]); }); }; function ValidateAndSubmit(evt) { //Show the loading icons jQuery(".lfoverlay").show(); jQuery(".lfmodal").show(); //Finish client side operations $('.Field.Currency input').each(function () { $(this).select(); $(this).next().val($(this).maskMoney('unmasked')[0]); }); $('.Field.Dropdown select').each(function () { $(this).prev().val($(this).find('option:selected').text()); }); $('.Field.Radiobutton table').each(function () { $(this).prev().val($(this).find('input:checked').next().text()); }); $('.Field.Checkbox table').each(function () { $(this).prev().val($(this).find('input:checkbox:checked').map(function () { return $(this).next().text(); }).get().join(',')); }); // Ascend from the button that triggered this click event // until we find a container element flagged with // .validationGroup and store a reference to that element. var $group = $(evt.currentTarget).parents('.validationGroup'); var isValid = true; // Descending from that .validationGroup element, find any input // elements within it, iterate over them, and run validation on // each of them. $group.validate(); var focus = new Array(); $group.find(':input').each(function (i, item) { if ($(item).is(':visible') && !$(item).valid()) { focus.push(item); isValid = false; } else if ($(item).attr('furequired') == "furequired" && !$(item).valid()) { focus.push(item); isValid = false; } else if ($(item).attr('fbrequired') == "fbrequired" && !$(item).valid()) { focus.push(item); isValid = false; } else if ($(item).attr('tagrequired') == "tagrequired") { if ($(item).parent('div').attr('tagrequired') != undefined && $(item).parent('div').attr('tagrequired') == "true") { if ($(item).parent('div').find("tag").length < 1) { $("#label" + $(item).attr('tag') + "").remove(); $("").insertAfter($(item)); isValid = false; } else { $("#label" + $(item).attr('tag') + "").remove(); } } } else if ($(item).attr('ckeditor') == "required") { if ($(item).parent('div').attr('editorrequired') != undefined && $(item).parent('div').attr('editorrequired') == "true") { $.each(CKEDITOR.instances, function (key, editor) { if ($(editor.element.$).parent('div').parent('li') != undefined && $(editor.element.$).parent('div').parent('li').is(':visible') == true) { if ($(item).attr('ckeditor') == $(editor.element.$).attr('ckeditor')) { if (editor.getData() == "") { $("#label" + $(item).attr('ckeditor') + "").remove(); $("").insertAfter($(item).parent('div').children('div')); isValid = false; } else { $("#label" + $(item).attr('ckeditor') + "").remove(); } } } }) } } var pagesection_Visible = true; var pagesection = $(item).closest('ul.page-break-section'); // in case of multiple captcha in a form with page breck if (pagesection && !$(pagesection).is(':visible')) pagesection_Visible = false; if (pagesection_Visible && $(item).hasClass('g-recaptcha-response') && !$(item).hasClass('novalidate')) { var captchadiv = $(item).closest('div[googlerecaptchaid]'); var captcharesponse = grecaptcha.getResponse($(captchadiv).attr('googlerecaptchaid')); $("#" + $(captchadiv).attr("id") + " .error").remove(); if (captcharesponse.length == 0) { isValid = false; $("#" + $(captchadiv).attr("id")).append(''); } } }); //password validate $group.find('.Field.Password').each(function (i, item) { var password = "", confirmpassword = ""; $(item).find(':input').each(function (i, inputitem) { if ($(inputitem).is(':visible')) { $(inputitem).next('.conmessage').remove(); if ($(inputitem).hasClass('password')) { password = inputitem.value; } else if ($(inputitem).hasClass('confirmpassword')) { $(inputitem).next('.conmessage').remove(); confirmpassword = inputitem.value; if (password != confirmpassword) { focus.push(inputitem); $('').insertAfter(inputitem); isValid = false; } } } }); }); //validate Extension fields isValid = ValidateExtension($group, focus, isValid); if ($(focus).length > 0) { $('html,body').animate({ scrollTop: $(focus).first().closest('li').first().offset().top - 100 }, 500, function () { $(focus).first().focus(); }); //$(focus).first().focus(); } // If any fields failed validation, prevent the button's click // event from triggering form submission. if (!isValid) { jQuery(".lfoverlay").hide(); jQuery(".lfmodal").hide(); evt.preventDefault(); } else if (evt.keyCode == 13) { var SubmitButton = $group.find('.causesValidation.bSubmit'); if (SubmitButton.length > 0) { SubmitButton.click(); evt.preventDefault(); } } //else { // var url = window.location.href; // if (url.indexOf("?") > -1) // url = url + '&mid=' + parseInt($(this).attr("mid")); // else // url = url + '?mid=' + parseInt($(this).attr("mid")); // $.post(url, $('form').serializeArray()).done(function (data) { // var $group = $(evt.currentTarget).parents('.validationGroup'); // var SubmitButton = $group.find('.causesValidation.bSubmit'); // jQuery(".lfoverlay").hide(); // jQuery(".lfmodal").hide(); // var html = $.parseHTML(data); // var dom = $(data); // $('body').find('[uniqueid="LiveForm' + parseInt($(SubmitButton).attr("mid")) + '"]').html(dom.find('[uniqueid="LiveForm' + parseInt($(SubmitButton).attr("mid")) + '"]').html()); // $.each($(data).find('script'), function (k, v) { // var src = $(v).attr("src"); // if (src != undefined && src.indexOf("DesktopModules/LiveForms") != -1) { // eval(v); // } // }); // }) // evt.preventDefault(); //} }