1

我正在尝试使用通过 GET 传递的值填充网站上的表单。我遇到问题的两个字段是类型为type="date"或的输入标签type="time"。Chrome 有一个不错的功能,它可以让您通过下拉日历来选择日期:

Chrome 的日期输入下拉日历

Chrome 也为 Time 字段做了类似的事情。问题是它不喜欢试图填充这些类型的表单字段的 javascript。我像这样传递 GET 信息:

通过 GET 传递信息以填充表单字段

日期格式这样的原因是因为这是后端需要的(不是我正在处理的),并且日期直接来自后端代码。

我有一个函数自动填充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 上,我得到了我期望得到的:

Safari 中的自动填充表单

使用 Chrome,我留下了空的表单字段:

Chrome 中的空白字段

我很困惑,不知道如何解决这个问题。我需要 Chrome 以类似于 Safari 的方式自动填充。

4

1 回答 1

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

于 2013-07-02T23:47:17.110 回答