对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 相关文章推荐
JavaScript 5 新增 Array 方法实现介绍
Feb 06 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
Apr 12 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
Aug 23 Javascript
js格式化货币数据实现代码
Sep 04 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
Jan 10 Javascript
JS文字球状放大效果代码分享
Aug 19 Javascript
微信小程序使用第三方库Immutable.js实例详解
Sep 27 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
Mar 08 Javascript
Angular2 组件通信的实例代码
Jun 23 Javascript
动态加载、移除js/css文件的示例代码
Mar 20 Javascript
vue实现新闻展示页的步骤详解
Apr 11 Javascript
微信小程序实现天气预报功能(附源码)
Dec 10 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文件上传主要代码讲解
2013/09/30 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
Python短信轰炸的代码
2020/03/25 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
世界上最好的帽子:Tilley
2016/11/27 全球购物
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
精伦电子Java笔试题
2013/01/16 面试题
促销活动总结怎么写
2014/06/25 职场文书
党员演讲稿
2014/09/04 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
导游词怎么写
2015/02/04 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
Python绘制分类图的方法
2021/04/20 Python
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫