Validform验证修改密码

简介: 前端页面、验证原密码后台代码、提交表单js代码、提交表单后台代码。

前端页面


<form class="modify_pwd" action="admin/change/pass" method="post" id="change_pwd">
            <table width="100%">
            <tr><td><input id="admin_id" value="${admin.id}" name="id" type="hidden"/></td></tr>
              <tr>
                    <td class="need" style="width:10px;">*</td>
                    <td style="width:100px;">原密码:</td>
                    <td style="width:210px;">
                        <input type="password" value="" name="oldpwd" class="inputxt" ajaxurl="admin/check/pass/${admin.id}" datatype="*6-18" errormsg="密码至少6个字符,最多18个字符!" />
                    </td>
                    <td>
                        <div class="Validform_checktip" >密码至少6个字符,最多18个字符!</div>
                    </td>
                </tr>
                <tr>
                    <td class="need" style="width:10px;">*</td>
                    <td style="width:100px;">新密码:</td>
                    <td style="width:210px;">
                        <input type="password" id="newPwd" value="" name="password" class="inputxt" plugin="passwordStrength"  datatype="*6-18" errormsg="密码至少6个字符,最多18个字符!" />
                    </td>
                    <td >
                        <div class="Validform_checktip" >密码至少6个字符,最多18个字符!</div>
                        <div class="passwordStrength" style="display:none;"><b>密码强度:</b> <span>弱</span><span>中</span><span class="last">强</span></div>
                    </td>
                </tr>
                <tr>
                    <td class="need">*</td>
                    <td style="width:100px;">确认密码:</td>
                    <td style="width:210px;"><input type="password" value="" name="repassword" class="inputxt" recheck="password"  datatype="*6-18" errormsg="两次输入的密码不一致!" /></td>
                    <td><div class="Validform_checktip">两次输入的密码需一致</div></td>
                </tr>
                <tr>   
                  <td class="need"></td>                               
                    <td  style="padding:10px 0 18px 0;">
                        <input class="btn btn-primary " id="btn_sub" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;"/> 
                    </td>
                     <td  style="padding:10px 0 18px 0;">
                        <input class="btn btn-warning " id="btn_reset" type="reset" value="&nbsp;&nbsp;重 置&nbsp;&nbsp;" />
                    </td>                   
                </tr>
            </table>
        </form>


验证原密码后台代码


/*
*service方法,返回数据一定要是这种格式{"status":"y","info":"成功"}
*{"status":"n","info":"失败"}
*/
public Map<String, Object> checkPass(int id, String oldPwd) {
    TbAdmin admin = tbAdminMapper.selectByPrimaryKey(id);
    Map<String, Object> map=new HashMap<>();
    if(admin!=null) {
      String oldPassword = admin.getPassword();
      if(MD5Utils.md5(oldPwd).equals(oldPassword)) {
        map.put("status", "y");
        return map;
      }else {
        map.put("status", "n");
        map.put("info", "密码错误");
        return map;
      }
    }else {
      map.put("status", "n");
      map.put("info", "密码错误");
      return map;
    }
/*
*controller
*参数名称要写param
*/
@RequestMapping("/check/pass/{id}")
  @ResponseBody
  public Map<String, Object> checkPassword(@PathVariable Integer id,String param) {
     Map<String, Object> result = adminService.checkPass(id, param);
    return result;
  }


提交表单js代码


$("#change_pwd").Validform({
   btnSubmit : "#btn_sub",
     tiptype : 2,
     ajaxPost:true,
     showAllError : false,
    postonce : true,
  usePlugin:{
    passwordstrength:{
      minLen:6,//设置密码长度最小值,默认为0;
      maxLen:18,//设置密码长度最大值,默认为30;
      trigger:function(obj,error){
        if(error){
          obj.parent().next().find(".Validform_checktip").show();
          obj.parent().next().find(".passwordStrength").hide();
        }else{
          obj.parent().next().find(".Validform_checktip").hide();
          obj.parent().next().find(".passwordStrength").show(); 
        }
      }
    }
  },
      callback:function(data){
        if(data.status=="y"){
          $.Hidemsg();
//此处有个小问题,不想要自带的弹窗(tiptype=4不显示那个弹窗,但是别的样式太丑)但是又不会改自带的样式,会闪一下那个提示窗,谁有好的方法,请告知,谢谢。
          layer.msg(data.info, {icon:1,time: 1000}, function(){ 
                  location.reload();//刷新页面 
                  });   
        }else{
          $.Hidemsg();
          layer.msg(data.info, {icon:5,time: 3000});
        }
      var index =parent.$("#iframe").attr("src");
    parent.layer.close(index);
      }
});


提交表单后台代码


//service 返回数据格式同上
public Map<String, Object> updatePass(int id, String password) throws Exception {
    TbAdmin admin=new TbAdmin();
    String pwd = MD5Utils.md5(password);
    admin.setId(id);
    admin.setPassword(pwd);
    Map<String, Object> map=new HashMap<>();
    try {
      tbAdminMapper.updateByPrimaryKeySelective(admin);
      map.put("status", "y");
      map.put("info", "修改成功");
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      throw new RuntimeException();
    }   
    return map;
  }
//controller
@RequestMapping("/change/pass")
  @ResponseBody
  public Map<String, Object> changePassword( Integer id,String password) {
    Map<String, Object> map=new HashMap<>();
    try {
      map = adminService.updatePass(id, password);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      map.put("status", "n");
      map.put("info", "修改失败");
    }
    return map;
  }
相关文章
|
3月前
|
前端开发 数据安全/隐私保护
expres实现登录与修改密码
expres实现登录与修改密码
|
前端开发 PHP 数据安全/隐私保护
laravle对密码验证,密码和重复密码
laravle对密码验证,密码和重复密码
389 0
laravle对密码验证,密码和重复密码
|
安全 Linux Shell
2.8 忘记root账户密码怎么办?
Linux 的单用户模式有些类似 Windows 的安全模式,只启动最少的程序用于系统修复。在单用户模式(运行级别为 1)中,Linux 引导进入根 shell,网络被禁用,只有少数进程运行。
215 0
2.8 忘记root账户密码怎么办?
|
数据安全/隐私保护
WordPress新用户注册时/修改密码提示“您的密码重设链接无效”
WordPress新用户注册时/修改密码提示“您的密码重设链接无效”
265 0
|
数据安全/隐私保护
用户名和密码校验程序
name = input('请输入用户名:') password = input('请输入密码:') if 6
1034 0
|
数据安全/隐私保护 小程序 Windows
|
内存技术 数据安全/隐私保护