budimir Posted May 4, 2016 Share Posted May 4, 2016 Hey people I need some help with form validation. I have done validation, but for some reason it takes a long time to process a form and then run script to store data in DB. I have check and traced problem to javascript that I'm using (it's not PHP that is causing the problem). I can't understand what is taking it to load so long. At one point my browser goes to Not responding and then after a minute it process a form. This is how I validate user input: <form action="save_article.php" method="POST" role="form" id="form2"> <div class="row"> <div class="col-md-12"> <div class="errorHandler alert alert-danger no-display"> <i class="fa fa-times-sign"></i> You have some form errors. Please check below. </div> <div class="successHandler alert alert-success no-display"> <i class="fa fa-ok"></i> Your form validation is successful! </div> </div> <div class="col-md-6"> <div class="form-group"> <label class="control-label"> SKU <span class="symbol required"></span> </label> <input type="text" placeholder="Insert SKU" class="form-control" id="sku" name="sku" /> </div> <div class="form-group"> <label class="control-label"> Last Name <span class="symbol required"></span> </label> <input type="text" placeholder="Insert your Last Name" class="form-control" id="lastname2" name="lastname2"> </div> And javascript validation is: var FormValidator = function () { "use strict"; var validateCheckRadio = function (val) { $("input[type='radio'], input[type='checkbox']").on('ifChecked', function(event) { $(this).parent().closest(".has-error").removeClass("has-error").addClass("has-success").find(".help-block").hide().end().find('.symbol').addClass('ok'); }); }; // function to initiate Validation Sample 1 var runValidator1 = function () { var form1 = $('#form'); var errorHandler1 = $('.errorHandler', form1); var successHandler1 = $('.successHandler', form1); $.validator.addMethod("FullDate", function () { //if all values are selected if ($("#dd").val() != "" && $("#mm").val() != "" && $("#yyyy").val() != "") { return true; } else { return false; } }, 'Please select a day, month, and year'); $('#form').validate({ errorElement: "span", // contain the error msg in a span tag errorClass: 'help-block', errorPlacement: function (error, element) { // render error placement for each input type if (element.attr("type") == "radio" || element.attr("type") == "checkbox") { // for chosen elements, need to insert the error after the chosen container error.insertAfter($(element).closest('.form-group').children('div').children().last()); } else if (element.attr("name") == "dd" || element.attr("name") == "mm" || element.attr("name") == "yyyy") { error.insertAfter($(element).closest('.form-group').children('div')); } else { error.insertAfter(element); // for other inputs, just perform default behavior } }, ignore: "", rules: { firstname: { minlength: 2, required: true }, lastname: { minlength: 2, required: true }, email: { required: true, email: true }, password: { minlength: 6, required: true }, password_again: { required: true, minlength: 5, equalTo: "#password" }, yyyy: "FullDate", gender: { required: true }, zipcode: { required: true, number: true, minlength: 5 }, city: { required: true }, newsletter: { required: true } }, messages: { firstname: "Please specify your first name", lastname: "Please specify your last name", email: { required: "We need your email address to contact you", email: "Your email address must be in the format of name@domain.com" }, gender: "Please check a gender!" }, groups: { DateofBirth: "dd mm yyyy", }, invalidHandler: function (event, validator) { //display error alert on form submit successHandler1.hide(); errorHandler1.show(); }, highlight: function (element) { $(element).closest('.help-block').removeClass('valid'); // display OK icon $(element).closest('.form-group').removeClass('has-success').addClass('has-error').find('.symbol').removeClass('ok').addClass('required'); // add the Bootstrap error class to the control group }, unhighlight: function (element) { // revert the change done by hightlight $(element).closest('.form-group').removeClass('has-error'); // set error class to the control group }, success: function (label, element) { label.addClass('help-block valid'); // mark the current input as valid and display OK icon $(element).closest('.form-group').removeClass('has-error').addClass('has-success').find('.symbol').removeClass('required').addClass('ok'); }, submitHandler: function (form) { successHandler1.show(); errorHandler1.hide(); // submit form //$('#form').submit(); } }); }; // function to initiate Validation Sample 2 var runValidator2 = function () { var form2 = $('#form2'); var errorHandler2 = $('.errorHandler', form2); var successHandler2 = $('.successHandler', form2); $.validator.addMethod("getEditorValue", function () { $("#editor1").val($('#form2 .summernote').code()); if ($("#editor1").val() != "" && $("#editor1").val().replace(/(<([^>]+)>)/ig, "") != "") { $('#editor1').val(''); return true; } else { return false; } }, 'This field is required.'); form2.validate({ errorElement: "span", // contain the error msg in a small tag errorClass: 'help-block', errorPlacement: function (error, element) { // render error placement for each input type if (element.attr("type") == "radio" || element.attr("type") == "checkbox") { // for chosen elements, need to insert the error after the chosen container error.insertAfter($(element).closest('.form-group').children('div').children().last()); } else if (element.hasClass("ckeditor")) { error.appendTo($(element).closest('.form-group')); } else { error.insertAfter(element); // for other inputs, just perform default behavior } }, ignore: "", rules: { sku: { minlength: 2, required: true }, lastname2: { minlength: 2, required: true }, email2: { required: true, email: true }, occupation: { required: true }, dropdown: { required: true }, services: { required: true, minlength: 2 }, creditcard: { required: true, creditcard: true }, url: { required: true, url: true }, zipcode2: { required: true, number: true, minlength: 5 }, city2: { required: true }, editor1: "getEditorValue", editor2: { required: true } }, messages: { firstname: "Please specify your first name", lastname: "Please specify your last name", email: { required: "We need your email address to contact you", email: "Your email address must be in the format of name@domain.com" }, services: { minlength: jQuery.validator.format("Please select at least {0} types of Service") } }, invalidHandler: function (event, validator) { //display error alert on form submit successHandler2.hide(); errorHandler2.show(); }, highlight: function (element) { $(element).closest('.help-block').removeClass('valid'); // display OK icon $(element).closest('.form-group').removeClass('has-success').addClass('has-error').find('.symbol').removeClass('ok').addClass('required'); // add the Bootstrap error class to the control group }, unhighlight: function (element) { // revert the change done by hightlight $(element).closest('.form-group').removeClass('has-error'); // set error class to the control group }, success: function (label, element) { label.addClass('help-block valid'); // mark the current input as valid and display OK icon $(element).closest('.form-group').removeClass('has-error').addClass('has-success').find('.symbol').removeClass('required').addClass('ok'); }, submitHandler: function (form) { successHandler2.show(); errorHandler2.hide(); // submit form $('#form2').submit(); } }); CKEDITOR.disableAutoInline = true; $('textarea.ckeditor').ckeditor(); }; return { //main function to initiate template pages init: function () { validateCheckRadio(); runValidator1(); runValidator2(); } }; }(); Quote Link to comment https://forums.phpfreaks.com/topic/301156-form-validation-long-time-to-process/ Share on other sites More sharing options...
mac_gyver Posted May 8, 2016 Share Posted May 8, 2016 it would take having enough of your code, that could be copy/pasted and ran as is (or put up on jsfiddle), that reproduces the problem, in order to help. Quote Link to comment https://forums.phpfreaks.com/topic/301156-form-validation-long-time-to-process/#findComment-1532948 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.