kendoui的datepicker組件在火狐瀏覽器中不顯示日期問題解決小結(jié)

問題背景

通常,在業(yè)務(wù)開發(fā)中邦鲫,我們經(jīng)常會碰到這樣的需求灸叼。通過前臺控制子頁面的日期選擇范圍限定在父頁面的日期選擇的區(qū)間內(nèi)。就像如下這個例子一樣掂碱,采購員授權(quán)明細(xì)界面的起始日期怜姿、失效日期可選擇的值要限定在采購員tab頁的授權(quán)起始日期和授權(quán)終止日期所限定的區(qū)間內(nèi)。


采購員Tab頁
采購員授權(quán)明細(xì)

要達(dá)到這種效果疼燥,一般的實現(xiàn)思路是這樣:
1.封裝一個方法openPurAuthDetail(e,startDate,endDate)沧卢,在方法中用kendoWindow來打開明細(xì)頁面,并將授權(quán)起始日期和授權(quán)終止日期傳到明細(xì)頁面醉者。

function openPurAuthDetail(e,startDate,endDate) {
        var authDetail = $("#auth-detail-purchaser").kendoWindow({
            actions: ["Close"],
            width: 700,
            height: 300,
            title: "采購員"+'<@spring.message "gxp.cus.authdetail"/>',
            visible: false,
            iframe: true,
            modal: true,
            content: '${base.contextPath}/gxp/entp/tab/gxp_entp_purchaser_auth.html?startDate='+startDate+'&endDate='+endDate,
        }).data("kendoWindow");
        authDetail.maximize();
        authDetail.center().open();
    };

2.在grid的columns的授權(quán)明細(xì)列中將openPurAuthDetail添加為點擊事件

{
                title:"授權(quán)明細(xì)",
                width: 120,
                headerAttributes: {
                    style: "text-align: center"
                },
                attributes: {style: "text-align:center;white-space:nowrap;text-overflow:ellipsis;"},
                template:function (item) {
                    var v = "<a id='purchaserAuth' onclick='openPurAuthDetail(event"+",\""+item.authStartDate+"\",\""+item.authEndDate+"\")' class='btn btn-primary k-grid-view'><i class='fa fa-eye'></i> 授權(quán)明細(xì)</a>";
                    if(!item.purchaserId){
                     v = "";
                     }
                    return v;
                }
            }

3.在授權(quán)明細(xì)界面收startDate和endDate(此時startDate和endDate均為字符串類型)但狭,然后通過new Date將startDate和endDate轉(zhuǎn)為Date類型,并設(shè)置到kendoDatePicker的min撬即、max配置中立磁。

             var startDate = '${RequestParameters.startDate}';
             var endDate = '${RequestParameters.endDate}';
             ...
{
                   field:'startDate',
                    title:'<@spring.message "gxp.cus.startdate"/>',
                    headerAttributes: {
                        style: "text-align: center"
                    },
                    attributes: {style: "white-space:nowrap;text-overflow:ellipsis;"},
                    format: "{0:yyyy-MM-dd}",
                    width:120,
                    editor: function(container, options){
                        //獲得到期時間
                        var end = options.model.endDate;
                        var opts={
                            format:"yyyy-MM-dd"
                        }
                        if(end){
                            opts.max=end;
                        }
                        if(startDate!="null"&&startDate!="")
                        {
                            opts.min=new Date(startDate);
                        }
                        if(endDate!="null"&&endDate!="")
                        {
                            var endDateTem=new Date(endDate);
                            if(end){
                                endDateTem=end<endDateTem?end:endDateTem;
                            }
                            opts.max=endDateTem;
                        }
                        $('<input name="' + options.field + '"/>')
                            .appendTo(container)
                            .kendoDatePicker(opts);
                    }
                },
                {
                    field:'endDate',
                    title:'<@spring.message "gxpentpproperty.enddate"/>',
                    headerAttributes: {
                        style: "text-align: center"
                    },
                    attributes: {style: "white-space:nowrap;text-overflow:ellipsis;"},
                    format: "{0:yyyy-MM-dd}",
                    width:120,
                    editor: function(container, options){
                        //獲得開始時間
                        var start = options.model.startDate;
                        var opts={
                            format:"yyyy-MM-dd",
                        }
                        if(start){
                            opts.min=start;
                        }
                        if(startDate!="null"&&startDate!="")
                        {
                            var startDateTem = new Date(startDate);
                            if(start){
                                startDateTem=start<startDateTem?startDateTem:start;
                            }
                            opts.min=startDateTem;
                        }
                        if(endDate!="null"&&endDate!="")
                        {
                            opts.max=new Date(endDate);
                        }
                        $('<input name="' + options.field + '"/>')
                            .appendTo(container)
                            .kendoDatePicker(opts);
                    }
                },

問題描述

通過以上方法實現(xiàn)的效果只能在chrome中顯示,在Firefox和Edge中均不能顯示

chrome
Firefox
Edge

打開調(diào)試器剥槐,發(fā)現(xiàn)startDate從字符串轉(zhuǎn)成Date類型時出現(xiàn)了錯誤唱歧,只有chrome能正常解析

chrome
chrome
Firefox
Firefox
Edge
Edge

解決方法

將傳遞到明細(xì)頁面的日期的格式轉(zhuǎn)換成chrome、Firefox、Edge都能解析的格式(如“yyyy-MM-dd”)即可

在hap框架中颅崩,就有這樣的方法

Date轉(zhuǎn)'yyyy-MM-dd'格式的字符串

那么几于,只需要在傳遞日期時,調(diào)用這個方法即可

onclick='openPurAuthDetail(event"+",\""+Hap.formatDate(item.authStartDate)+"\",\""+Hap.formatDate(item.authEndDate)+"\")' class='btn btn-primary k-grid-view'><i class='fa fa-eye'></i> 授權(quán)明細(xì)</a>";
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沿后,一起剝皮案震驚了整個濱河市沿彭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尖滚,老刑警劉巖喉刘,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異漆弄,居然都是意外死亡睦裳,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門置逻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來推沸,“玉大人,你說我怎么就攤上這事券坞△薮撸” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵恨锚,是天一觀的道長宇驾。 經(jīng)常有香客問我,道長猴伶,這世上最難降的妖魔是什么课舍? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮他挎,結(jié)果婚禮上筝尾,老公的妹妹穿的比我還像新娘。我一直安慰自己办桨,他們只是感情好筹淫,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呢撞,像睡著了一般损姜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上殊霞,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天摧阅,我揣著相機(jī)與錄音,去河邊找鬼绷蹲。 笑死棒卷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娇跟,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岩齿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苞俘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤龄章,失蹤者是張志新(化名)和其女友劉穎吃谣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體做裙,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡岗憋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了锚贱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仔戈。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拧廊,靈堂內(nèi)的尸體忽然破棺而出监徘,到底是詐尸還是另有隱情,我是刑警寧澤吧碾,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布凰盔,位于F島的核電站,受9級特大地震影響倦春,放射性物質(zhì)發(fā)生泄漏户敬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一睁本、第九天 我趴在偏房一處隱蔽的房頂上張望尿庐。 院中可真熱鬧,春花似錦呢堰、人聲如沸抄瑟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锐借。三九已至,卻和暖如春往衷,著一層夾襖步出監(jiān)牢的瞬間钞翔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工席舍, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留布轿,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像汰扭,于是被迫代替她去往敵國和親稠肘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容