使用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 相关文章推荐
url地址自动加#号问题说明
Aug 21 Javascript
jQuery阻止冒泡和HTML默认操作
Nov 17 Javascript
JavaScript XML和string相互转化实现代码
Jul 04 Javascript
JavaScript/jQuery 表单美化插件小结
Feb 14 Javascript
javascript验证身份证完全方法具体实现
Nov 18 Javascript
jQuery的DOM操作之删除节点示例
Jan 03 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
May 03 Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
Aug 17 Javascript
ES6知识点整理之Proxy的应用实例详解
Apr 16 Javascript
浅谈vuex中store的命名空间
Nov 08 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速度全攻略
2006/10/09 PHP
php HandlerSocket的使用
2011/05/02 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
python中数据库like模糊查询方式
2020/03/02 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
大专生自我鉴定范文
2013/10/01 职场文书
搞笑的获奖感言
2014/08/16 职场文书
材料物理专业求职信
2014/09/01 职场文书
教师四风问题整改措施
2014/09/25 职场文书
公务员政审材料范文
2014/12/23 职场文书
魂断蓝桥观后感
2015/06/10 职场文书