2013-07-02 91 views
1

我試圖在通過GET傳遞值的網站上填充表單。我遇到的兩個字段是輸入標籤,其類型爲type="date"type="time"。 Chrome瀏覽器有這個很好的功能,讓你一個下拉日曆中選擇一個日期:使用Javascript自動填充表單日期和時間

Chrome's Drop Down Calendar for Date Inputs

的Chrome也做了時間字段類似的東西。問題是,它不喜歡試圖填充這些類型的表單域的JavaScript。我通過GET像這樣的信息:

Passed Information through GET to Populate the Form Fields

日期的格式是這樣的原因是因爲這是後端需要什麼(不是我的工作),日期從後面直接來自結束代碼。

我有一個函數,自動填充document.$_GET作爲數組與GET所有傳遞的值。我也有date.js包括,這使我可以使用Date.parse功能和一些其他的東西。我通過它通過JavaScript這樣的:

if(document.$_GET['time']!=undefined) 
    document.getElementById('time').value=document.$_GET['time']; 

if(document.$_GET['date']!=undefined){ 
    var date = new Date(); 
    date = Date.parse(document.$_GET['date']); 
    alert(date.toString('MM-dd-yyyy')); // <-- Debugging 
    document.getElementById('date').value = date.toString('MM-dd-yyyy'); //WHY WON'T YOU WORK!? 
} 

在Safari上我得到了我期望得到:

Autofilled form in Safari

隨着Chrome的我留下的空白表單字段:

Empty fields in Chrome

我很難過,不知道如何解決這個問題。我需要Chrome來自動填充,類似於Safari的功能。

回答

1

谷歌瀏覽器嚴格限制日期的格式。

日期的格式爲YYYY-MM-DD。時間與軍事時間一起工作。 (24小時時鐘)

下面是一個示例, http://jsfiddle.net/vFnxw/2/

$("#date").attr({ 
    value:"2012-09-28" 
}) 
$("#time").attr({ 
    value:"23:59:59" 
}) 

這裏是源

http://dev.w3.org/html5/markup/input.date.html

http://dev.w3.org/html5/markup/input.time.html

+0

真棒!這有利於日期工作。那時候呢?我猜這是非常相似的東西。也許在時間和'AM'或'PM'子串之間加一個空格? - 不。不只是一個缺失的空間。這是別的。 –

+1

@ScottM試試'hh:mm:ss' – joequincy

+0

@ScottM我用時間格式更新了我的答案。 – sissonb