基于ajax实现用户修改密码功能

基于ajax实现用户修改密码功能_第1张图片

easyUI中validatebox使用

提供的校验规则:
1、非空校验required="required"
2、使用validType指定
         email:正则表达式匹配电子邮件规则。
         url:正则表达式匹配的URL规则。
         length[0,100]:在x和x字符允许。
         remote['http://.../action.do','paramName']:发送ajax请求做验证值,返回“true”当成功。
新密码:
确认密码:

(2)为确定按钮绑定事件

//为确定按钮绑定事件
		$("#btnEp").click(function(){
			//进行表单校验
			var v = $("#editPasswordForm").form("validate");
			if(v){
				//表单校验通过,手动校验两次输入是否一致
				var v1 = $("#txtNewPass").val();
				var v2 = $("#txtRePass").val();
				if(v1 == v2){
					//两次输入一致,发送ajax请求
					$.post("userAction_editPassword.action",{"password":v1},function(data){
						if(data == '1'){
							//修改成功,关闭修改密码窗口
							$("#editPwdWindow").window("close");
						}else{
							//修改密码失败,弹出提示
							$.messager.alert("提示信息","密码修改失败!","error");
						}
					});
				}else{
					//两次输入不一致,弹出错误提示
					$.messager.alert("提示信息","两次密码输入不一致!","warning");
				}
			}
		});

基于ajax实现用户修改密码功能_第2张图片

2、服务端处理

第一步:在UserAction中创建修改密码方法editPassword

    
/**
	 * 修改当前用户密码
	 * @throws IOException 
	 */
	public String editPassword() throws IOException{
		String f = "1";
		//获取当前登录用户
		User user = BOSUtils.getLoginUser();
		try{
			userService.editPassword(user.getId(),model.getPassword());
		}catch(Exception e){
			f = "0";
			e.printStackTrace();
		}
		ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
		ServletActionContext.getResponse().getWriter().print(f);
		return NONE;
	}

第二步:在UserService中提供修改密码方法

/**
	 * 根据用户id修改密码
	 */
	public void editPassword(String id, String password) {
		//使用MD5加密密码
		password = MD5Utils.md5(password);
		userDao.executeUpdate("user.editpassword", password,id);
	}

第三步:在BaseDao中提供通用更新方法

//执行更新
	public void executeUpdate(String queryName, Object... objects) {
		Session session = this.getSessionFactory().getCurrentSession();
		Query query = session.getNamedQuery(queryName);
		int i = 0;
		for (Object object : objects) {
			//为HQL语句中的?赋值
			query.setParameter(i++, object);
		}
		//执行更新
		query.executeUpdate();
	}

第四步:在User.hbm.xml中定义更新语句


    	UPDATE User SET password = ? WHERE id = ?

案例

    

第一步:扩展一个手机号的校验规则


第二步:为手机号输入框应用规则

基于ajax实现用户修改密码功能_第3张图片

第三步:为保存按钮绑定事件,提交表单

                                                                    //为保存按钮绑定事件
									$("#save").click(function(){
										//表单校验,如果通过,提交表单
										var v = $("#addStaffForm").form("validate");
										if(v){
											//$("#addStaffForm").form("submit");
											$("#addStaffForm").submit();
										}
									});














你可能感兴趣的:(基于ajax实现用户修改密码功能)