var ajax_response = 'ajax.sc'; function validateOuterForm(id, module){ var $container = $("#"+id); // Login Form & Validation var outer_opts = { rules: {}, highlight: function(element) { $(element).closest('.input-group').addClass('white validate-has-error'); }, unhighlight: function(element) { $(element).closest('.input-group').removeClass('white validate-has-error'); }, submitHandler: function(ev) { // Hide Errors $(".alert").slideUp('fast'); // We will wait till the transition ends $fields = $container.find('input'); data = {}; $fields.each(function(j, el2){ var $field = $(el2); name = $field.attr('name'); data[name] = $field.val(); }); sendOuterRequest(module, data) } } $fields = $container.find('input'); $fields.each(function(j, el2){ var $field = $(el2); name = $field.attr('name'); outer_opts.rules[name] = {}; outer_opts.rules[name]["required"] = true; }); $container.validate(outer_opts); } function sendOuterRequest(module, post_data) { window.onbeforeunload = null; $(".fa-chevron-double-right").removeClass("fa-chevron-double-right").addClass("fa-spinner fa-spin") $.ajax({ url: ajax_response + "?type=outer&outer="+module, method: 'POST', dataType: 'json', data: post_data, error: function(xhr, errorType, exception ) { if(xhr.status != 200){ sendOuterRequest(module, post_data); } }, success: function(response) { $(".fa-spinner").addClass("fa-chevron-double-right").removeClass("fa-spinner fa-spin"); // We will give some time for the animation to finish, then execute the following procedures if(response.hasOwnProperty("js")){ try { eval(response.js); } catch(e){ alert("invalid JS code" + response.js); console.log(e); } } } }); }