$.urlParam = function(name){ var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); return results[1] || 0; } function getFormData(form) { var indexed_array = {}; var inputs = $(form).find('[name]') inputs.each(function () { indexed_array[$(this).attr('name')] = $(this).val() if ($(this).prop('tagName').toLowerCase() == 'select' && $(this).val() == '') { indexed_array[$(this).attr('name')] = null } if ($(this).attr('type') == 'number' && $(this).val() == '') { indexed_array[$(this).attr('name')] = null } }) return indexed_array; } function resetPassword(form) { var url = form.attr('action'); var method = form.attr('method'); var body = getFormData(form); $('#form-error').hide(); $('#form-success').hide(); var btn = $('#form-reset-password-btn'); btn.prop('disabled', true); $.ajax({ type: method, url: url, data: JSON.stringify(body), dataType: "json", cache: false, success: function (data) { console.log(data); var message = "E-mail enviado correctamente" $('#form-error').hide(); $('#form-success').show().text(message); // btn.removeAttr('disabled'); }, error: function(xhr, status, error) { console.log(xhr.responseText) var message = "Error al enviar el e-mail" if (xhr.responseJSON && xhr.responseJSON.message) { message = xhr.responseJSON.message } $('#form-success').hide(); $("#form-error").show().text(message) // btn.removeAttr('disabled'); } }) } function setPassword(form) { var url = form.attr('action'); var method = form.attr('method'); var body = getFormData(form); $('#form-error').hide(); $('#form-success').hide(); if (body.password != body.password_confirmation) { $('#form-error').text('Las contraseñas no coinciden').show() return } var btn = $('#form-set-password-btn'); btn.prop('disabled', true); $.ajax({ type: method, url: url, data: JSON.stringify({ password: body.password, token: $.urlParam('t'), }), dataType: "json", cache: false, success: function (data) { console.log(data); var message = "Contraseña cambiada correctamente" $('#form-error').hide(); $('#form-success').show().text(message); // btn.removeAttr('disabled'); }, error: function(xhr, status, error) { console.log(xhr.responseText) var message = "Error al cambiar la contraseña" if (xhr.responseJSON && xhr.responseJSON.message) { message = xhr.responseJSON.message } $('#form-success').hide(); $("#form-error").show().text(message) btn.removeAttr('disabled'); } }) } $(document).ready(function () { $('#form-reset-password').on('submit', function (event) { event.preventDefault(); resetPassword($(this)); }); $('#email').on('input', function () { $('#form-reset-password-btn').removeAttr('disabled'); }); $('#form-set-password').on('submit', function (event) { event.preventDefault(); setPassword($(this)); }); });