使用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 相关文章推荐
js中运算符&amp;&amp; 和 || 的使用记录
Aug 21 Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 Javascript
bootstrap网页框架的使用方法
May 10 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
Jul 22 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
详解vue嵌套路由-params传递参数
May 23 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
Sep 06 Javascript
浅谈实现vue2.0响应式的基本思路
Feb 13 Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
Sep 01 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
Sep 18 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中{}大括号是什么意思
2013/12/01 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
Python中列表(list)操作方法汇总
2014/08/18 Python
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
Keras设置以及获取权重的实现
2020/06/19 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
汽车专业毕业生推荐信
2013/11/12 职场文书
精细化工应届生求职信
2013/11/17 职场文书
销售简历自我评价
2014/01/24 职场文书
老师的检讨书
2014/02/23 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
安全月宣传标语
2014/10/07 职场文书
2015年司机工作总结
2015/04/23 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android