使用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 组件之旅(二)编码实现和算法
Oct 28 Javascript
ExtJs之带图片的下拉列表框插件
Mar 04 Javascript
jsTree 基于JQuery的排序节点 Bug
Jul 26 Javascript
jQuery之排序组件的深入解析
Jun 19 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
Mar 14 Javascript
理解javascript中try...catch...finally
Dec 25 Javascript
微信小程序开发之toast提示插件使用示例
Jun 08 Javascript
微信小程序图片自适应支持多图实例详解
Jun 21 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
详解Vue单元测试case写法
May 24 Javascript
vue+高德地图写地图选址组件的方法
May 18 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
Jun 24 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
phpmyadmin操作流程
2006/10/09 PHP
探讨捕获php错误信息方法的详解
2013/06/09 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
jquery获取节点名称
2015/04/26 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
python 链接和操作 memcache方法
2017/03/04 Python
python中logging库的使用总结
2017/10/18 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
慈善募捐倡议书
2015/04/27 职场文书
元宵节晚会主持词
2015/07/01 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
MySQL插入数据与查询数据
2022/03/25 MySQL