login.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. * 登录相关js
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/6/1
  6. * @version
  7. */
  8. let rules = {
  9. username: {
  10. required: true,
  11. minlength: 2
  12. },
  13. password:{
  14. required: true,
  15. minlength: 4
  16. }
  17. };
  18. $(document).ready(function() {
  19. console.log($('#password').val());
  20. $("#login-form").validate({
  21. rules: rules,
  22. errorPlacement: function(error, element) {
  23. error.addClass('help-block');
  24. let parentEle = $(element).parent();
  25. parentEle.parent().addClass('has-error');
  26. $(element).parent().after(error);
  27. },
  28. errorElement: "span",
  29. success: function(element) {
  30. $("#common-error").remove();
  31. $(element).parent().removeClass('has-error');
  32. }
  33. });
  34. // 登录操作
  35. let isLogin = false;
  36. $("#login").click(function() {
  37. if (isLogin) {
  38. return false;
  39. }
  40. // 验证数据
  41. if (!$("#login-form").valid()) {
  42. return false;
  43. }
  44. let username = $("#username").val();
  45. let password = $("#password").val();
  46. $.ajax({
  47. url: '/login/login',
  48. type: 'post',
  49. data: {username: username, password: password},
  50. dataType: 'json',
  51. error: function() {
  52. isLogin = false;
  53. },
  54. beforeSend: function() {
  55. isLogin = true;
  56. },
  57. success: function(response) {
  58. isLogin = false;
  59. if (response.error === 0) {
  60. // 正确则跳转
  61. window.location.href = '/dashboard';
  62. } else {
  63. // 错误则提示
  64. show_error(response.msg);
  65. }
  66. }
  67. });
  68. });
  69. });
  70. /**
  71. * 显示错误
  72. *
  73. * @param {string} msg
  74. * @return {void}
  75. */
  76. function show_error(msg) {
  77. $("form > .form-group").addClass('has-error');
  78. $("input").last().parent().after('<span id="common-error" class="error help-block">'+ msg +'</span>');
  79. }