前端页面

<a href="javascript:void(0);" onclick="changPassword()">
  <i class="ace-icon fa fa-cog"></i>
  修改密码
</a>

<script type="text/javascript">
  //打开模态框
  function changPassword(){
    $("#navbar_edit").modal({
      backdrop :'static'
    });
  }
</script>
<#include "/include/navbar_edit.html">

<!-- 模态框(Modal) -->
<div class="modal fade" id="navbar_edit" tabindex="-1" role="dialog"
  aria-labelledby="roleEditLabel" aria-hidden="true">
  <div class="modal-dialog" style="width:500px;">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title" id="roleEditLabel">修改密码</h4>
      </div>
      <div class="modal-body">
      <div style="width:90%;">
        <form class="form-horizontal" id="navbar_pwd_reset">
          <div class="form-group">
            <label class="col-sm-4 control-label" for="old_password">旧密码:</label>
            <div class="col-sm-8" style="padding:0">
            <input class="col-sm-12" type="password" id="old_password"
              name="old_password" placeholder="请输入旧密码 " />
            </div>
          </div>
          <div class="form-group">
            <label class="col-sm-4 control-label" for="new_password">新密码:</label>
            <div class="col-sm-8" style="padding:0">
            <input class="col-sm-12" type="password" id="new_password"
              name="new_password" placeholder="请输入新密码 " />
            </div>
          </div>
          <div class="form-group">
            <label class="col-sm-4 control-label" for="confirm_password">确认新密码:</label>
            <div class="col-sm-8" style="padding:0">
              <input class="col-sm-12" type="password" id="confirm_password"
                name="confirm_password" placeholder="确认新密码 " />
            </div>
          </div>
        </form>
      </div>
    </div>
    <div class="modal-footer">
      <button type="button" class="btn btn-xs btn-default"
          data-dismiss="modal" id="navbar_close_btn">
        <i class="ace-icon fa fa-times bigger-110"></i> <span
          class="bigger-110 no-text-shadow">关闭</span>
      </button>
      <button type="button" class="btn btn-xs btn-primary" id="navbar_save_btn">
        <i class="ace-icon fa fa-floppy-o bigger-110"></i> <span
          class="bigger-110 no-text-shadow">保存</span>
      </button>
    </div>
   </div>
    <!-- /.modal-content -->
  </div>
<!-- /.modal -->
</div>

<script type="text/javascript">
  $("#navbar_edit").on("show.bs.modal", function() {
    $("#navbar_edit #navbar_pwd_reset").formClear();

  });
  $("#navbar_edit").on("hidden.bs.modal", function() {
    $(this).removeData("bs.modal");

  });
  $(document).on("click", "#navbar_save_btn", function(e) {
    var old_psd = $("#navbar_pwd_reset #old_password").val();
    var new_psd = $("#navbar_pwd_reset #new_password").val();
    var con_psd = $("#navbar_pwd_reset #confirm_password").val();
    //alert(old_psd);
    //alert(new_psd);
    //alert(con_psd);
    if (old_psd == "" || new_psd == "" || con_psd == "") {
    bootbox.alert("相关字段不为空,请输入!");
      return false;
    };
    if (old_psd == new_psd) {
    bootbox.alert("旧密码和新密码相同,请重新输入!");
      return false;
    };
    if (new_psd != con_psd) {
      bootbox.alert("两次输入新密码不相同,请重新输入!");
      return false;
    };
    var params = $("#navbar_pwd_reset").serialize();
      //alert(params);
      $.ajax({
        cache : true,
        type : "POST",
        url : "${ctx!}/modifyPassword",
        data : params,
        async : false,
        error : function(request) {
          bootbox.alert("服务器连接错误,请稍后再试");
        },
        success : function(data) {
          if (SQ.isOK(data)) {
            bootbox.alert("重置成功", function() {
              $("#navbar_close_btn").click();
            });
          } else {
            bootbox.alert("重置失败:" + SQ.getMessage(data));
          }
        },
      });
    });
</script>

后端页面

public void modifyPassword() {
  BasMember sysUser = this.getLoginUser();

  if (sysUser == null || sysUser.getInt(BasMember.IsDelete).equals(1)) {
    render(new JsonRender(new AjaxResult(Constants.RESPONSE_STATUS_FAIL, "会话已过期,请重新登录!")).forIE());
    return;
  }

  // 旧秘密
  String password = getPara("old_password");
  password = CommonUtil.getEncryptedPwd(password);
  if (!password.equals(sysUser.get(BasMember.Password))) {
    render(new JsonRender(new AjaxResult(Constants.RESPONSE_STATUS_FAIL, "旧密码不正确!")).forIE());
    return;
  }

  // 新密码
  password = getPara("new_password");
  password = CommonUtil.getEncryptedPwd(password);

  // 赋值
  sysUser.set(BasMember.Password, password);
  sysUser.set(BasMember.ModifyBy, this.getLoginId());
  sysUser.set(BasMember.ModifyTime, StringUtil.getNowTime());
  if (!sysUser.update()) {
    render(new JsonRender(new AjaxResult(Constants.RESPONSE_STATUS_FAIL, "修改时出现异常")).forIE());
  }
  render(new JsonRender(new AjaxResult(Constants.RESPONSE_STATUS_OK, "修改成功!")).forIE());
}

使用ajax请求,模态框调用并更改密码的更多相关文章

  1. Ajax技术使用之ajax与模态框结合的妙用

    Ajax技术使用之ajax与模态框结合的妙用 要求: 使用ajax的方式提交数据:https://www.cnblogs.com/-wenli/p/10470063.html 使用模态框完成增加数据, ...

  2. ajax+json模态框中分页(spring+struts+mybatis+easyui分页插件)

    0.业务需求: 点击每个数字的时候可以显示每个对应的详细记录.也就是得点击11的时候拿着开采部与C级去查询.

  3. ajax请求,html调用js

    1:html中调用js中的函数,js使用ajax请求向后台请求,返回数据. <!DOCTYPE html> <html lang="en"> <hea ...

  4. ajax 请求发出了,数据更改了,但是没进入success 函数 把success 换成 complete

    $(function(){ $(document).on('tap','.w-location-group .mui-table-view-cell',function(){ var bool = $ ...

  5. jQuery delegate方法实现Ajax请求绑定事件不丢失

    给元素绑定click事件后 ,遇到一个问题:当执行一些ajax请求,再次调用此页面,里面的这个click事件就失效了 比如说:我的分页是一个ajax请求 但我点下一页时 后生成的元素a就没有了clic ...

  6. Ajax请求过程中显示“进度”的简单实现

    Ajax在Web应用中使用得越来越频繁.在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击 ...

  7. Ajax发送请求等待时弹出模态框等待提示

    主要的代码分为两块,一个是CSS定义模态框,另一个是在Ajax中弹出模态框. 查看菜鸟教程中的模态框教程demo,http://www.runoob.com/try/try.php?filename= ...

  8. bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)

    /查询单个 function query(id) { $.ajax({ url : "/small/productServlet", async : true, type : &q ...

  9. bootstrap通过ajax请求JSON数据后填充到模态框

    1.   JSP页面中准备模态框 <!-- 详细信息模态框(Modal) --> <div> <div class="modal fade" id=& ...

随机推荐

  1. 图文解说:Nginx+tomcat配置集群负载均衡

    图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用  作者:niumd Blog:http://ari.iteye ...

  2. 基于LR的数据库性能测试

    web services协议 在LR的web services协议中提供了如下函数进行数据库的连接和执行sql语句,以实现对数据库的性能测试,也可以实现向数据库中自动生成批量数据. lr_db_dis ...

  3. backbone-todo案例分析

    todo案例可以到这个地址下载 https://github.com/jashkenas/backbone 添加数据后 todo案例不涉及Router,仅有Model.Collection.View的 ...

  4. Jetbrains phpstorm pycharm 免费授权注册码

    通过授权服务器授权 jetbrains是一家专门做IDE的软件公司,软件也非常好用,但是授权特别贵,下面就说说免费的方式,就是使用授权服务器,地址:http://idea.qinxi1992.cn 自 ...

  5. svn解锁

    SVN解锁操作 现在很多项目开发都使用SVN作为馆控工具,SVN馆中的文件既可以以文件夹的方式获取,也可以通过eclipse导入.获取文件后,我们可以对某个文件锁定. 如果某个同事锁定了某个文件,而他 ...

  6. Java程序员从笨鸟到菜鸟之(二十一)java过滤器和监听器详解 【转】

     过滤器 1.Filter工作原理(执行流程) 当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请 ...

  7. 【转】一篇很全面的freemarker教程---有空慢慢实践

    FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... -->格式部分,不会输 ...

  8. 答CsdnBlogger问-关于职业发展和团队管理问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 问1:关于职业发展以及团队管理?(正能同學_) 请问在二线城市的小公司里,普通Android开发者的 ...

  9. Qt拖拽界面 (*.ui) 缩放问题及解决办法(在最顶层放一个Layout)

    问题 使用Qt Designer 设计的界面,在缩放的时候不能随着主窗口一起缩放. 解决办法 之前遇到这个问题的时候,都是直接重写resizeEvent接口来实现的,在自动生成的Ui_Widget或U ...

  10. 用户交互与while循环<代码>

    #用户交互1 age_oldboy = 56 guess_age = int(input(">>:")) if guess_age == age_oldboy: pri ...