Validform验证修改密码

前端页面

<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;
	}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熟透的蜗牛

永远满怀热爱,永远热泪盈眶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值