/*========================================================================================= File Name: auth-reset-password.js Description: Auth reset password js file. ---------------------------------------------------------------------------------------- Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template Author: PIXINVENT Author URL: http://www.themeforest.net/user/pixinvent ==========================================================================================*/ $(function () { 'use strict'; var pageResetPasswordForm = $('.auth-reset-password-form'); // jQuery Validation // -------------------------------------------------------------------- if (pageResetPasswordForm.length) { pageResetPasswordForm.validate({ /* * ? To enable validation onkeyup onkeyup: function (element) { $(element).valid(); },*/ /* * ? To enable validation on focusout onfocusout: function (element) { $(element).valid(); }, */ rules: { 'reset_token': { required: true }, 'reset_password_new': { required: true, strong_password: true }, 'reset_password_confirm': { required: true, equalTo: '#reset_password_new' } }, submitHandler: function (form) { $.ajax({ type: "POST", url: "/api/auth_resetpassword", dataType: "json", data: $(form).serialize(), beforeSend: function() { $("button[type=button]").addClass('disabled'); Swal.fire({ title: 'Please wait...', html: 'We are updating your password.', allowEscapeKey: false, allowOutsideClick: false, didOpen: () => { Swal.showLoading() } }); }, success: function (response) { console.log(response); if (response.status == 1) { Swal.fire( 'Good job!', 'Password is updated succesfully.', 'success' ).then(function (result) { if (true) { window.location.href = response.data['redirect_to']; } }) console.log(response); }else{ Swal.fire({ title: 'Error ' + response.responseCode + '!', text: response.message, icon: 'error', customClass: { confirmButton: 'btn btn-primary' }, buttonsStyling: false }); } } }); return false; // required to block normal submit since you used ajax } }); $.validator.addMethod("strong_password", function (value, element) { let password = value; if (!(/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[@#$%&])(.{8,20}$)/.test(password))) { return false; } return true; }, function (value, element) { let password = $(element).val(); if (!(/^(.{8,20}$)/.test(password))) { return 'Password must be between 8 to 20 characters long.'; } else if (!(/^(?=.*[A-Z])/.test(password))) { return 'Password must contain at least one uppercase.'; } else if (!(/^(?=.*[a-z])/.test(password))) { return 'Password must contain at least one lowercase.'; } else if (!(/^(?=.*[0-9])/.test(password))) { return 'Password must contain at least one digit.'; } else if (!(/^(?=.*[@#$%&])/.test(password))) { return "Password must contain special characters from @#$%&."; } return false; }); } });