1

GET を介して渡された値をサイトのフォームに入力しようとしています。私が問題を抱えている 2 つのフィールドは、タイプがtype="date"orの入力タグですtype="time"。Chromeには、日付を選択するためのドロップダウンカレンダーを提供するこの素晴らしい機能があります:

日付入力用の Chrome のドロップダウン カレンダー

Chrome は Time フィールドに対しても同様のことを行います。問題は、これらのタイプのフォーム フィールドに入力しようとする JavaScript が気に入らないことです。次のように GET 情報を渡します。

GET を介して情報を渡してフォーム フィールドに入力する

日付がこのようにフォーマットされている理由は、それがバックエンドが必要とするものであり (私が取り組んでいるものではない)、日付がバックエンド コードから直接取得されるためです。

document.$_GETGET から渡されたすべての値を配列として自動入力する関数があります。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 の空のフィールド

私は困惑しており、これを修正する方法がわかりません。Safari と同様に Chrome で自動入力する必要があります。

4

1 に答える 1

1

Google Chrome は日付の形式に厳密です。

日付は、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 に答える