使用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 相关文章推荐
JQery 渐变图片导航效果代码 漂亮
Jan 01 Javascript
jQuery 操作下拉列表框实现代码
Feb 22 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
Vue自定义图片懒加载指令v-lazyload详解
Dec 31 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
May 22 Javascript
React-Native 组件之 Modal的使用详解
Aug 08 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
Vue实现PopupWindow组件详解
Apr 28 Javascript
countUp.js实现数字滚动效果
Oct 18 Javascript
微信小程序实现多图上传
Jun 19 Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 Javascript
详解TS数字分隔符和更严格的类属性检查
May 06 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 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
详解Vue源码之数据的代理访问
2018/12/11 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
python数据处理实战(必看篇)
2017/06/11 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
set在python里的含义和用法
2019/06/24 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
python 等差数列末项计算方式
2020/05/03 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
华为的Java面试题
2014/03/07 面试题
代理班主任的自我评价
2014/02/04 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
行政处罚决定书
2015/06/24 职场文书
五一放假通知怎么写
2015/08/18 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
使用python求解迷宫问题的三种实现方法
2022/03/17 Python
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript