使用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 setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
分享27个jQuery 表单插件集合推荐
Apr 25 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
May 03 Javascript
Javascript 函数的四种调用模式
Nov 05 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
AngularJS学习第一篇 AngularJS基础知识
Feb 13 Javascript
inner join 内联与left join 左联的实例代码
Sep 18 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
详解Vue.js项目API、Router配置拆分实践
Mar 16 Javascript
ng-zorro-antd 入门初体验
Dec 03 Javascript
JS实现随机抽选获奖者
Nov 07 Javascript
vuex的数据渲染与修改浅析
Nov 26 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个人网站架设连环讲(三)
2006/10/09 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
JavaScript登录验证码的实现
2016/10/27 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
python中zip和unzip数据的方法
2015/05/27 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
基于python指定包的安装路径方法
2018/10/27 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
python3安装speech语音模块的方法
2018/12/24 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
《孔子拜师》教学反思
2014/02/24 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
责任担保书范文
2014/05/21 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python
python单向链表实例详解
2022/05/25 Python