[关闭]
@2890594972 2017-12-15T09:02:37.000000Z 字数 1222 阅读 889

自动登录保存信息

jquery


自动登录效果

image_1c1cm9u5t1s7fgbt14vuosm1tpa9.png-7.5kB

基于bootstrap排版布局

image_1c1cmaj5p1qautl5m8q11eftv3m.png-17.6kB

校验时,依赖这么多的js

image_1c1cmbg4116qp15671i5c1ca31ujc13.png-38.4kB

要注意:

1、启用cookie支持json
image_1c1cmd9031hfn57q15f2vqftpe1g.png-5.1kB

2、序列化form表单为json对象

3、注意checkbox选择,是采用了jquery,还是原生js
只有原生js的checkbox才有checked
转换注意给个[0]即可
image_1c1cmiag6b781jn414601qra14ec1t.png-30.1kB

js代码逻辑

  1. // 启用cookie json模式
  2. $.cookie.json = true;
  3. // 确保dom加载完毕
  4. $(function(){
  5. var api = {
  6. base:'http://localhost:3000',
  7. // 登录接口
  8. login:function(data){
  9. $.ajax({
  10. type: "POST",
  11. url: this.base + "/api/login",
  12. data: data,
  13. dataType: "json",
  14. success: function (res) {
  15. alert(res.msg)
  16. }
  17. });
  18. }
  19. }
  20. var loginForm = $("#loginForm");
  21. // 校验登录
  22. loginForm.validate({
  23. // 定制错误提示样式
  24. errorElement: 'div',
  25. errorClass:'tip-box',
  26. submitHandler:function(form){
  27. // var data = $(form).serialize();
  28. var data = $(form).serializeJSON();
  29. // 获取checkbox
  30. var checkbox = $(form).find('input[type="checkbox"]');
  31. // 判断是否选中
  32. // console.log(checkbox[0].checked);
  33. if(checkbox[0].checked){
  34. // 如果选中,则保持数据到cookie中
  35. // $.cookie("userinfo", JSON.stringify(data));
  36. $.cookie("userinfo",data);
  37. }else{
  38. $.cookie("userinfo", null);
  39. }
  40. api.login(data);
  41. }
  42. })
  43. // 自动读取cookie内容
  44. // var userinfo = $.cookie('userinfo');
  45. // userinfo = JSON.parse(userinfo);
  46. var userinfo = $.cookie('userinfo');
  47. // 判断cookie中是否存在userinfo
  48. if(userinfo){
  49. // 解析
  50. loginForm.find('input[name="username"]').val(userinfo['username']);
  51. loginForm.find('input[name="password"]').val(userinfo['password']);
  52. loginForm.find('input[type="checkbox"]').attr('checked','checked');
  53. }
  54. })
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注