$(function() { $("#forgot-password-form, #reset-password-form").on("submit", function(event) { event.preventDefault(); const form = $(this); const button = form.find('button[type="submit"]'); if (form.is("#reset-password-form") && form.find('[name="password"]').val() !== form.find('[name="password_confirmation"]').val()) { popZ("As senhas informadas não são iguais.", "warning"); return; } button.prop("disabled", true); $.ajax({ type: form.attr("method"), url: form.attr("action"), data: form.serialize(), dataType: "json", success: function(response) { if (response.result === "password_reset") { popZ("Senha alterada. Você já pode acessar sua conta.", "success", "/login"); return; } popZ("Se o e-mail estiver cadastrado, você receberá o link em alguns minutos.", "success", "/login"); }, error: function(jqXhr) { const result = (jqXhr.responseJSON || {}).result; if (result === "invalid_password") { popZ("Use uma senha com pelo menos 6 caracteres.", "warning"); } else if (result === "invalid_or_expired_token") { popZ("Este link é inválido ou expirou. Solicite uma nova recuperação.", "warning", "/esqueci-minha-senha"); } else { popZ("Não foi possível concluir a solicitação. Tente novamente.", "error"); } }, complete: function() { button.prop("disabled", false); } }); }); });