使用layer弹窗,制作编辑User信息页面的方法


Posted in Javascript onSeptember 27, 2019

用户信息展示页面为A页面,编辑页面为B页面。A是B的父页面

首先在A页面添加按钮,点击触发函数,函数初始化layer弹窗

‘编辑'按钮:

<button type="button" class="btn btn-primary btn-xs" id="edit{{item.id}}" 
     onclick="editSingle('{{$index}}')">修改</button>

执行函数:

var userContent//作为全局变量,之后给B页面直接调用,后面会提到
function editSingle(index){
 userContent = vm.content[index]
 layer.open({
  type: 2,
  title: '编辑',
  area : ['800px' , '520px'], 
  scrollbar: false,//禁止浏览器滚动
  content: 'bUser/editSingle'
  }); 
}

B页面初始化时从A页面取值,用parent.xxx

var iframe = parent.layer.getFrameIndex(window.name); //获取窗口索引,这里的B页面所在窗口的索引值为1
 var vm = new Vue({
  el:'#editUser',
  data:{
   contents:parent.userContent,//从A页面取值
   titles:['手机','密码','用户名','性别','邮箱','地区','个性签名','头像']
  }
 });

使用Vue动态生成html语句

<form class="form-horizontal" id="editUser" action="<%=basePath%>/BSMSys/bUser/save" method="post">
 <div class="form-group" v-for="(key,value) in contents" >
  <div v-if="$index==0">
   <div hidden>
    <input v-else type="text" class="form-control" id="{{key}}" name="{{key}}" placeholder="{{value}}" value="{{value}}">
   </div>
  </div>
  <div v-if="$index!=0">
   <label for="{{key}}" class="col-xs-2 control-label">{{titles[$index-1]}}</label>
   <div class="col-xs-9" >
    <div v-if="$index==4 || value=='MAN'" class="fixradio">
     <input type="radio" name="{{key}}" id="{{key}}" value="MAN"/> 男
     <input type="radio" name="{{key}}" id="{{key}}" value="WOMEN"/> 女
    </div>
    <input v-else type="text" class="form-control" id="{{key}}" name="{{key}}" placeholder="{{value}}" value="{{value}}">
   </div>
  </div>
 </div>

 <div class="form-group">
  <div class="col-xs-offset-5 col-xs-1">
   <button class="btn btn-primary" id="save">保存</button>
  </div>
  <div class="col-xs-1">
   <button class="btn btn-default" id="restore">还原</button>
  </div>
 </div>
</form>

效果如下:

使用layer弹窗,制作编辑User信息页面的方法

由于其中'性别'是radio单选框,所以需要判断

//判断性别,并选中对应的radio
  if(vm.contents.sex!=''){
   if(vm.contents.sex=='MAN') $("#sex:eq(0)").click();
   else $("#sex:eq(1)").click();
  }

还原按钮,即刷新页面:

$("#restore").click(function(){
   window.location.reload();
  })

保存按钮:

$("#save").click(function(){
   $("#editUser").submit();
   parent.location.reload();
   //parent.layer.close(iframe);//如果执行这一步,会导致submit无法提交到服务器,这里用刷新页面使弹窗关闭
  })

在后台将form数据保存进数据库即可

后续优化:

将B页面form表单的submit提交改为ajax提交,

function save(){ 
  $.ajax({
   type:"post",
   url:"<%=basePath%>/BSMSys/bUser/save",
   data: $("#editUser").serialize(),//序列化表单数据
   complete: function() {
    parent.layer.close(iframe);//关闭弹窗
   }
  });
 }
$('#save').on('click', function(){
   save();
  });

将A页面的layer弹窗添加end函数回调,使弹窗关闭后刷新页面:

function jumpToPage(page){
 $.get("<%=basePath%>/BSMSys/bUser/showUser?pageNum="+page, function(data) { 
  vm.content=data.content;//赋值给vue
  currPage = data.number+1;
  $('#pager').bootstrapPaginator("show",currPage );//初始化分页插件
 });
 $("#pageInputGroup").attr("class","input-group");
 $("#pageInput").attr("placeholder",function(index,value){
  $(this).val("");
  return "第"+options.currentPage+"页,共"+options.totalPages+"页";
 });
}
var userContent
function editSingle(index){
 userContent = vm.content[index]
 layer.open({
  type: 2,
  title: '编辑',
  area : ['800px' , '520px'], 
  scrollbar: false,//禁止浏览器滚动
  content: '<%=basePath%>/BSMSys/bUser/editSingle',
  end:function(){
   jumpToPage(options.currentPage);
  }
 }); 
}

以上这篇使用layer弹窗,制作编辑User信息页面的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript实现动态CSS换肤技术的脚本
Jun 29 Javascript
javascript 解析后的xml对象的读取方法细解
Jul 25 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
Apr 01 Javascript
json实现前后台的相互传值详解
Jan 05 Javascript
JavaScript中利用for循环遍历数组
Jan 15 Javascript
JS获取子、父、兄节点方法小结
Aug 14 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
JavaScript学习笔记之图片库案例分析
Jan 08 Javascript
详解Vue项目部署遇到的问题及解决方案
Jan 11 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
Oct 15 Javascript
JavaScript监听键盘事件代码实现
Jun 03 Javascript
Vue实现简单购物车功能
Dec 13 Vue.js
vue实现倒计时获取验证码效果
Apr 17 #Javascript
通过layer实现可输入的模态框的例子
Sep 27 #Javascript
vue调用语音播放的方法
Sep 27 #Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
Sep 27 #Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
Sep 27 #Javascript
vue实现在线翻译功能
Sep 27 #Javascript
webpack 处理CSS资源的实现
Sep 27 #Javascript
You might like
php计算程序运行时间的简单例子分享
2014/05/10 PHP
实例讲解php数据访问
2016/05/09 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
Node.js实现文件上传
2016/07/05 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
Python函数中参数是传递值还是引用详解
2019/07/02 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
大学生个人实习的自我评价
2014/02/15 职场文书
读书活动总结范文
2014/04/26 职场文书
年终考核实施方案
2014/05/26 职场文书
大学生毕业求职信
2014/06/12 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
道歉情书大全
2015/05/12 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
教师节祝酒词
2015/08/11 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
MySQL注入基础练习
2021/05/30 MySQL
PyMongo 查询数据的实现
2021/06/28 Python