对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 相关文章推荐
动态加载iframe
Jun 16 Javascript
jquery 学习之一 对象访问
Nov 23 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
Aug 22 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
Nov 23 Javascript
jquery插件jSignature实现手动签名
May 04 Javascript
JS中获取函数调用链所有参数的方法
May 07 Javascript
jquery实现用户打分评分特效
May 28 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 Javascript
vue-router中scrollBehavior的巧妙用法
Jul 09 Javascript
JavaScript ES2019中的8个新特性详解
Feb 20 Javascript
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
JavaScript Dom实现轮播图原理和实例
Feb 19 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读取javascript设置的cookies的代码
2010/04/12 PHP
php基础学习之变量的使用
2011/06/09 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
vue+php实现的微博留言功能示例
2019/03/16 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
python适合人工智能的理由和优势
2019/06/28 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
基于python实现查询ip地址来源
2020/06/02 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
应届生幼儿园求职信
2013/11/12 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
三方合作意向书范本
2015/05/09 职场文书
公司处罚决定书
2015/06/24 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL