使用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 入门·JavaScript 具有全范围的运算符
Oct 01 Javascript
jQuery+css+html实现页面遮罩弹出框
Mar 21 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 Javascript
javascript模拟C#格式化字符串
Aug 26 Javascript
javascript合并表格单元格实例代码
Jan 03 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
js实现的xml对象转json功能示例
Dec 24 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
Sep 12 Javascript
Node.js EventEmmitter事件监听器用法实例分析
Jan 07 Javascript
jQuery控制input只能输入数字和两位小数的方法
May 16 jQuery
Node.js 深度调试方法解析
Jul 28 Javascript
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生成带有雪花背景的验证码
2006/10/09 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
php新建文件的方法实例
2019/09/26 PHP
有趣的javascript数组定义方法
2010/09/10 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
vue实现扫码功能
2020/01/17 Javascript
Python中格式化format()方法详解
2017/04/01 Python
Python使用django搭建web开发环境
2017/06/09 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
市场安全管理制度
2014/01/26 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
七夕情人节问候语
2015/11/11 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书