jQuery MiniUI

 找回密码
 立即注册
查看: 4906|回复: 2
打印 上一主题 下一主题

使用mini.decode()在IE11中报错! [复制链接]

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2018-5-4 11:46:50 |只看该作者 |倒序浏览
本帖最后由 魔力睿睿 于 2018-5-4 11:49 编辑

我在测试动态生成表头时,在谷歌浏览器下测试没有问题,但在IE11中测试时,提示错误:

通过调试,发现是在执行mini.decode()时发生的错误,是表头数据有问题吗?但是单独使用下面的数据,进行grid.set是可以成功的。。。
  1. columns: [
  2.                                 { header: "2018年3月", columns:[
  3.                                         { field: "2018-3-16", width: 20, headerAlign:"center",align:"center",header: "16"},
  4.                                         { field: "2018-3-17", width: 20, headerAlign:"center",align:"center",header: "17"},
  5.                                         { field: "2018-3-18", width: 20, headerAlign:"center",align:"center",header: "18"},
  6.                                         { field: "2018-3-19", width: 20, headerAlign:"center",align:"center",header: "19"},
  7.                                         { field: "2018-3-20", width: 20, headerAlign:"center",align:"center",header: "20"},
  8.                                         { field: "2018-3-21", width: 20, headerAlign:"center",align:"center",header: "21"},
  9.                                         { field: "2018-3-22", width: 20, headerAlign:"center",align:"center",header: "22"},
  10.                                         { field: "2018-3-23", width: 20, headerAlign:"center",align:"center",header: "23"},
  11.                                         { field: "2018-3-24", width: 20, headerAlign:"center",align:"center",header: "24"},
  12.                                         { field: "2018-3-25", width: 20, headerAlign:"center",align:"center",header: "25"},
  13.                                         { field: "2018-3-26", width: 20, headerAlign:"center",align:"center",header: "26"},
  14.                                         { field: "2018-3-27", width: 20, headerAlign:"center",align:"center",header: "27"},
  15.                                         { field: "2018-3-28", width: 20, headerAlign:"center",align:"center",header: "28"},
  16.                                         { field: "2018-3-29", width: 20, headerAlign:"center",align:"center",header: "29"},
  17.                                         { field: "2018-3-30", width: 20, headerAlign:"center",align:"center",header: "30"},
  18.                                         { field: "2018-3-31", width: 20, headerAlign:"center",align:"center",header: "31"}]},
  19.                                 { header: "2018年4月", columns:[
  20.                                         { field: "2018-4-1", width: 20, headerAlign:"center",align:"center",header: "1"},
  21.                                         { field: "2018-4-2", width: 20, headerAlign:"center",align:"center",header: "2"},
  22.                                         { field: "2018-4-3", width: 20, headerAlign:"center",align:"center",header: "3"},
  23.                                         { field: "2018-4-4", width: 20, headerAlign:"center",align:"center",header: "4"},
  24.                                         { field: "2018-4-5", width: 20, headerAlign:"center",align:"center",header: "5"},
  25.                                         { field: "2018-4-6", width: 20, headerAlign:"center",align:"center",header: "6"},
  26.                                         { field: "2018-4-7", width: 20, headerAlign:"center",align:"center",header: "7"},
  27.                                         { field: "2018-4-8", width: 20, headerAlign:"center",align:"center",header: "8"},
  28.                                         { field: "2018-4-9", width: 20, headerAlign:"center",align:"center",header: "9"},
  29.                                         { field: "2018-4-10", width: 20, headerAlign:"center",align:"center",header: "10"},
  30.                                         { field: "2018-4-11", width: 20, headerAlign:"center",align:"center",header: "11"},
  31.                                         { field: "2018-4-12", width: 20, headerAlign:"center",align:"center",header: "12"},
  32.                                         { field: "2018-4-13", width: 20, headerAlign:"center",align:"center",header: "13"},
  33.                                         { field: "2018-4-14", width: 20, headerAlign:"center",align:"center",header: "14"},
  34.                                         { field: "2018-4-15", width: 20, headerAlign:"center",align:"center",header: "15"},
  35.                                         { field: "2018-4-16", width: 20, headerAlign:"center",align:"center",header: "16"},
  36.                                         { field: "2018-4-17", width: 20, headerAlign:"center",align:"center",header: "17"},
  37.                                         { field: "2018-4-18", width: 20, headerAlign:"center",align:"center",header: "18"},
  38.                                         { field: "2018-4-19", width: 20, headerAlign:"center",align:"center",header: "19"},
  39.                                         { field: "2018-4-20", width: 20, headerAlign:"center",align:"center",header: "20"},
  40.                                         { field: "2018-4-21", width: 20, headerAlign:"center",align:"center",header: "21"},
  41.                                         { field: "2018-4-22", width: 20, headerAlign:"center",align:"center",header: "22"},
  42.                                         { field: "2018-4-23", width: 20, headerAlign:"center",align:"center",header: "23"},
  43.                                         { field: "2018-4-24", width: 20, headerAlign:"center",align:"center",header: "24"}
  44.                                 ]}
  45.                         ]}
复制代码

附js代码:
  1. function setgrid(date){
  2.         var indate = date[0];
  3.         var outdate = date[1];               
  4.         var findate = new Date(indate);//字符串转日期
  5.         var foutdate = new Date(outdate);
  6.         //获取起始日期的月份差
  7.         indate = indate.split('-');
  8.         indate = parseInt(indate[0])*12+parseInt(indate[1]);
  9.         outdate = outdate.split('-');
  10.         outdate = parseInt(outdate[0])*12+parseInt(outdate[1]);
  11.         var mlen = Math.abs(outdate-indate);
  12.         //获取起始日期天数差
  13.         var dlen = (foutdate-findate)/1000/60/60/24;
  14.         //拼接生成列的数组对象
  15.         var cols = '';
  16.         for(var j=0;j<=mlen;j++){
  17.                 var yd = getYD(findate,j);
  18.                 var mm=findate.getMonth()+1+j;
  19.                 cols = cols+'{ header: "'+yd+'", columns:[';
  20.                 for(var i=0;i<=dlen;i++){
  21.                          var fielddate = addDate(findate,i);
  22.                          var d = new Date(fielddate);
  23.                          var m = d.getMonth()+1;
  24.                          var day = d.getDate();
  25.                          if(mm!=m) continue;
  26.                          cols = cols+'{ field: "'+fielddate+'", width: 20, headerAlign:"center",align:"center",header: "'+day+'"},'
  27.                          
  28.                 }
  29.                 cols = cols.substr(0, cols.length - 1);
  30.                 cols = cols+']},';
  31.         }
  32.         cols = cols.substr(0, cols.length - 1);
  33.         cols = '{columns: ['+cols+']}';
  34. //console.log(cols);
  35.         var data = mini.decode(cols);//字符串序列化       
  36.         var cos= grid.getColumns();//获取当前grid信息
  37.         cos.push(data);//添加列
  38.         grid.setColumns(cos);//设置列
  39.        
  40. }
复制代码

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 6Rank: 6

沙发
发表于 2018-5-4 15:17:04 |只看该作者
有版主在吗?

Rank: 6Rank: 6

板凳
发表于 2018-5-5 11:50:31 |只看该作者
问题终于解决了,主要原因还是数据格式的问题,另外在IE中用JS把字符串转为日期类型时,不能识别“2018-05-05 00:00:00”这种格式,只能是“2018/05/05 00:00:00”的格式。

给大家推荐一个网站:http://www.bejson.com/ 能帮助你检查JSON数据格式。

Archiver|普加软件

GMT+8, 2025-7-17 12:04 , Processed in 1.022867 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部