使用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 选择器理解
Mar 16 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
ie8模式下click无反应点击option无反应的解决方法
Oct 11 Javascript
jquery对象和DOM对象的任意相互转换
Feb 21 Javascript
JavaScript绑定事件监听函数的通用方法
May 14 Javascript
js 轮播效果实例分享
Dec 28 Javascript
inner join 内联与left join 左联的实例代码
Sep 18 Javascript
详解vue+css3做交互特效的方法
Nov 20 Javascript
JavaScript作用域链实例详解
Jan 21 Javascript
微信小程序左右滚动公告栏效果代码实例
Sep 16 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
jQuery实现移动端扭蛋机抽奖
Nov 08 jQuery
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操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
js上传图片预览的实现方法
2017/05/09 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
Python 用户登录验证的小例子
2013/03/06 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
python 19个值得学习的编程技巧
2020/08/15 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
UNIX文件类型
2013/08/29 面试题
初中美术教学反思
2014/01/29 职场文书
房地产促销活动方案
2014/03/01 职场文书
同学会邀请函模板
2015/01/30 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android