使用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 相关文章推荐
基础的prototype.js常用函数及其用法
Mar 10 Javascript
javascript的trim,ltrim,rtrim自定义函数
Sep 21 Javascript
js实现兼容IE6与IE7的DIV高度
May 13 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
JS中artdialog弹出框控件之提交表单思路详解
Apr 18 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
Sep 17 Javascript
JavaScript 身份证号有效验证详解及实例代码
Oct 20 Javascript
详解如何较好的使用js
Dec 16 Javascript
PHP 实现一种多文件上传的方法
Sep 20 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
May 12 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
Aug 08 Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 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速成大法
2015/01/30 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
python如何制作英文字典
2019/06/25 Python
python实现logistic分类算法代码
2020/02/28 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
高考备战决心书
2014/03/11 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
学生退学证明
2015/06/23 职场文书
老人与海读书笔记
2015/06/26 职场文书