使用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 相关文章推荐
jquery下json数组的操作实现代码
Aug 09 Javascript
动态创建样式表在各浏览器中的差异测试代码
Sep 13 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
Jun 17 Javascript
详解Jquery Easyui的验证扩展
Jan 09 Javascript
解决给dom元素绑定click等事件无效问题的方法
Feb 17 Javascript
利用n工具轻松管理Node.js的版本
Apr 21 Javascript
利用types增强vscode中js代码提示功能详解
Jul 07 Javascript
MVVM框架下实现分页功能示例
Jun 14 Javascript
原生js实现自定义消息提示框
Nov 19 Javascript
Vue 简单实现前端权限控制的示例
Dec 25 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
PHP游戏编程25个脚本代码
2011/02/08 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP查询快递信息的方法
2015/03/07 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
深入理解Promise.all
2018/08/08 Javascript
python编写爬虫小程序
2015/05/14 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
企业党员公开承诺书
2014/03/26 职场文书
2015年度物流工作总结
2015/04/30 职场文书
升学宴来宾致辞
2015/07/27 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
Golang 编译成DLL文件的操作
2021/05/06 Golang