对Layer弹窗使用及返回数据接收的实例详解


Posted in Javascript onSeptember 26, 2019

Layer做为弹窗,主页面代码:

注意1. callback()方法 返回字符串,再data:JSON.parse(res)转为ajax提交时的json参数

注意2. textarea 上使用append方法没有效果,改写: var str = $("#area").val() + “\n”+d; $("#area").val(str);

//引入js 必须要有(1.8以上版本) jquery 
 <script src="__PUBLIC__/js/jquery.js"></script>
 <script type="text/javascript" src="__PUBLIC__/js/layer/layer.js"></script>
 
//点击事件,弹出窗口
function openCitySelect(){
	 layer.open({
   type: 2, //以frame型式加载content页面
   title: "设置区域",
   shadeClose: true,
   shade: 0.4,
   area: ['90%', '90%'],
   content: "{:U('user/index/citylist')}", //指向页面
   btn: ['选择城市','追加城市','关闭'], //底部按钮
   yes: function(index){
    //当点击‘选择城市'按钮的时候,获取弹出层返回的值 
    var res = window["layui-layer-iframe" + index].callback();
    //打印返回的值,看是否有我们想返回的值。    
    $.ajax({
	    url:"{:U('user/index/getListOfCity')}",
	    type:"post",
	    data:JSON.parse(res),
     success:function(data){ 	 
	     //console.log(data);
	     var a = JSON.parse(data);
	    b = a.length;
	    if (0 >= b) {
	     Wind.use('artDialog',function(){
	      art.dialog({
	      id : "alert",
	      icon : "error",
	      content : "请至少选择一个地区",
	      ok : function() {}
	      });
	     });
	    }else {
	      var thisCitys = JSON.parse(data);
	 					var d="";
	 					var new_arr = []; 					
	      for (var f = 0; f < thisCitys.length; f++) {    	 
	     	  if($.inArray(thisCitys[f],new_arr)==-1) { 	     	 	 
	     	 		 new_arr.push(thisCitys[f]); 	     	 	
	     	  }
	      }
	      //去重
	      for(var i=0;i<new_arr.length; i++){
	     	 d = isNull(d) ? new_arr[i] : d + ("\n" + new_arr[i])
	      }
	       // }
	     
	      $("#area").val(d);
	     
	     lineTotal('area');
	    } 
	    },
	    error:function(e){
	     alert("错误!!"); 	     
	    }
	   }); 
    //最后关闭弹出层
    layer.close(index);
   },
   btn2:function(index){
  	 //当点击‘追加城市'按钮的时候,获取弹出层返回的值
    var res = window["layui-layer-iframe" + index].callback();
    //打印返回的值,看是否有我们想返回的值。
    
    $.ajax({
 	    url:"{:U('user/index/getListOfCity')}",
 	    type:"post",
 	    data:JSON.parse(res),
     success:function(data){ 	 
 	     //console.log(data);
 	     var a = JSON.parse(data);
 	    b = a.length;
 	    if (0 >= b) {
 	     Wind.use('artDialog',function(){
 	      art.dialog({
 	      id : "alert",
 	      icon : "error",
 	      content : "请至少选择一个地区",
 	      ok : function() {}
 	      });
 	     });
 	    }else {
 	      var thisCitys = JSON.parse(data);
 	 					var d="";
 	 					var new_arr = []; 					
 	      for (var f = 0; f < thisCitys.length; f++) {    	 
 	     	  if($.inArray(thisCitys[f],new_arr)==-1) { 	     	 	 
 	     	 		 new_arr.push(thisCitys[f]); 	     	 	
 	     	  }
 	      }
 	      //去重
 	      for(var i=0;i<new_arr.length; i++){
 	     	 d = isNull(d) ? new_arr[i] : d + ("\n" + new_arr[i])
 	      }
 	       // }
 	      var str = $("#area").val() + "\n"+d; 	
 	      console.log(str);
 	      $("#area").val(str);
 	     
 	     lineTotal('area');
 	    } 
 	    },
 	    error:function(e){
 	     alert("错误!!"); 	     
 	    }
 	   }); 
    //最后关闭弹出层
    layer.close(index);
   },
   cancel: function(){
    //右上角关闭回调
   }
  });
 }

弹窗页面的代码:

注意: window.callback 用来将数据返回到主页

<script type="text/javascript" src="__PUBLIC__/js/layui2/layui.js"></script>
 <script>  
 		
  //加载模块 	  	 
 	 layui.use('form', function(){   
   var $ = layui.jquery, form = layui.form ; 
  //返回数据的方法, 在layui中 用window.前缀可以被外面访问到.
   window.callback = function() {
				var arr = new Array();
				$("#province :checkbox[checked]").each(function(i){
					arr[i] = $(this).val();
				});
				var vals = arr.join(",");
				var has_pro = $("#pro").is(':checked')?1:0;
				var has_city = $("#city").is(':checked')?1:0;
				var has_county = $("#county").is(':checked')?1:0;
				var has_end = $("#short_name").is(':checked')?1:0;
				var has_and_pro = $("#pro_city").is(':checked')?1:0;
				var has_and_city = $("#city_county").is(':checked')?1:0;
				var result = '{ "provinces":" ' + vals + '","has_pro":"' + has_pro + '","has_city":"' + has_city + '","has_county":"' + has_county 
					+ '","has_end":"' + has_end + '","has_and_pro":"' + has_and_pro + '","has_and_city":"' + has_and_city + '"}';
				return result;
  };
  }); 	 
 	 
 	</script>

以上这篇对Layer弹窗使用及返回数据接收的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
跨域表单提交状态的变相判断代码
Nov 12 Javascript
设置checkbox为只读(readOnly)的两种方式
Oct 11 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
escape函数解决js中ajax传递中文出现乱码问题
Oct 30 Javascript
跟我学习javascript的undefined与null
Nov 17 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
JS实现的验证身份证及获取地区功能示例
Jan 16 Javascript
jQuery树插件zTree使用方法详解
May 02 jQuery
详解vue2.0 不同屏幕适配及px与rem转换问题
Feb 23 Javascript
animate.css在vue项目中的使用教程
Aug 05 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
bootstrap下拉分页样式 带跳转页码
Dec 29 Javascript
Vue 刷新当前路由的实现代码
Sep 26 #Javascript
vue中使用百度脑图kityminder-core二次开发的实现
Sep 26 #Javascript
浅谈Layui的eleTree树式选择器使用方法
Sep 25 #Javascript
layui禁用侧边导航栏点击事件的解决方法
Sep 25 #Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 #Javascript
关于layui导航栏不展示下拉列表的解决方法
Sep 25 #Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
Sep 25 #Javascript
You might like
PHP 读取Postgresql中的数组
2013/04/14 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
js类型检查实现代码
2010/10/29 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
Python单链表的简单实现方法
2014/09/23 Python
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
食品营养与检测应届生求职信
2013/11/08 职场文书
八年级英语教学反思
2014/01/09 职场文书
幼儿园教师培训制度
2014/01/16 职场文书
《中彩那天》教学反思
2014/02/22 职场文书
工程采购员岗位职责
2014/03/09 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
优秀家长事迹材料
2014/05/17 职场文书
2014会计年终工作总结
2014/12/20 职场文书
颐和园英文导游词
2015/01/30 职场文书
店长岗位职责
2015/02/11 职场文书
学生会个人总结范文
2015/02/15 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js