2013-07-29 26 views
1

當我使用jquery mobile在IE中爲日期輸入標籤時,沒有日曆彈出窗口顯示如同在Chrome中一樣。有沒有我可以下載的插件,將創建一個日曆彈出的IE瀏覽器?我如何讓IE瀏覽器支持IE中的日期選擇器

這是我的HTML我使用:

<input id="EndDate" name="EndDate" type="date" value=""> 

和一個內置的日期選擇器是不是在我測試過IE所有版本(IE 8,9,10,等等。 )

+0

請將相關的HTML代碼添加到問題中。還請指定您正在測試的IE版本。 – Spudley

+0

就這麼你知道,搜索IE5的HTML5插件的最佳術語是「polyfill」。 – ceejayoz

回答

6

<input type="date">作爲任何版本的IE的本地功能都不受支持。

最好的解決方案是使用「Polyfill」腳本。 Polyfills是編寫的小腳本,用於添加對某些瀏覽器中可能缺少的功能的支持。通常他們允許網站作者編寫他們正常的標準HTML或CSS代碼,並且polyfill腳本在幕後執行該工作以使該功能正常工作。

Modernizr項目有a Wiki page that lists a whole stack of polyfill scripts。該頁面至少包含兩個腳本,可以填充<input type='date'>功能。我建議先試用這些腳本。 (網上可能有其他人,但如果Modernizr推薦他們,那麼他們可能是最好的)

談到Modernizr,你可能也想使用這個腳本,因爲它的工作是幫助您可以確定瀏覽器支持哪些功能,從而確定是否需要加載polyfill腳本。

Modernizr網站對如何進行瀏覽器功能檢測以及如何使用Modernizr加載polyfill腳本有很好的說明,所以我不再重複。

或者,如果您不想使用Modernizr,您可以編寫自己的功能檢測腳本 - 這很容易。這樣的事情應該做的伎倆:

function browserSupportsDateInput() { 
    var i = document.createElement("input"); 
    i.setAttribute("type", "date"); 
    return i.type !== "text"; 
} 

,然後你會使用這樣的:

if(!browserSupportsDateInput()) { 
    //not supported, so run the polyfill script instead. 
} 

希望幫助。

+0

在IE 11中不起作用 – Vinoth

1

你總是可以使用第三方日期選擇器的jQuery Mobile。

其中只有3個是麥芽汁提及,並且每個人都可以配置爲顯示某種日期格式,並且每個人都可以在所有設備上工作。你會推薦你使用Mobiscroll,因爲它具有看起來像本地移動/桌面日期選擇器的皮膚。

Mobiscroll - http://jsfiddle.net/Gajotres/WDjfR/

$(document).on('pagebeforeshow', '#index', function(){  
    $('#demo').mobiscroll().date({ 
     invalid: { daysOfWeek: [0, 6], daysOfMonth: ['5/1', '12/24', '12/25'] }, 
     theme: 'android-ics', 
     display: 'inline', 
     mode: 'scroller', 
     dateOrder: 'dd mm yy', 
     dateFormat : "dd-mm-yy" 
    }); 
}); 

Mobipick - http://jsfiddle.net/Gajotres/zyVjE/

$(document).on('pagebeforeshow', '#index', function(){  
    $('#demo').mobipick({ 
     dateFormat: "MM-dd-yyyy" 
    }); 
}); 

Datebox - http://jsfiddle.net/Gajotres/ktbcP/

<input name="mydate" id="mydate" type="date" data-role="datebox" data-options='{"mode": "datebox", "useNewStyle":true, "dateFormat": "mm/dd/YYYY"}'/> 
+0

「只有其中3個值得一提」 - 儘量保持你的答案免於意見偏見。此外,如果這個答案是在一年後研究的,那麼這些選項幾乎肯定會改變。 – Blazemonger

+0

這是我的私人目標陳述,與我活躍的成員所在的小組相關,如果有人知道任何其他解決方案,他可以自由撰寫評論。 – Gajotres

+0

在IE中不工作11 – Vinoth

-1

現在,我將默認使用較新的HTML5 date輸入,它們在移動設備上提供相同的本機體驗,優於任何日期選擇器,並且具有跨設備一致性的優點。

<input type="date"> 

截至今天只有Chrome的桌面上對它的支持,它是公平的假設,其他瀏覽器會趕上最後,所以我們要開發使用這種第一和用JS搭上邊的情況,而我們仍然有至。

我會使用Modernizr的處理這些邊緣情況:

if !Modernizr.inputtypes.date 
    // initialise your own datepicker 
    // eg. http://amsul.ca/pickadate.js - which has the best support I've seen (IE8+) 

通過這種方式,可以支持date投入會,一切將啓動JS日期選擇器所有的瀏覽器。有了'最終'在未來真正輕鬆分解JS的額外獎勵。

相關問題