5

現在、ホテル予約ウィジェットのコーディングに取り組んでおり、jQueryUIの日付ピッカーを使用しています。

問題は、クライアントが使用している外部予約システムが日付形式を処理することですyyyy-mm-dd。クライアントは、これが入力ボックスに表示される人々を混乱させていると考えており、サイトではなく2012-06-19ヨーロッパ形式で日付を表示したいと考えています。dd-mm-yyyy

したがって、基本的にフォームはdd-mm-yyyy、日付が選択されたときに表示する必要があり、送信ボタンがフォームをクリックしたときにyyyy-mm-dd、値を送信する前に日付を再配置する必要があります。

予約システム会社は、これを達成した多くのクライアントがいると言っていますが、これがどのように行われるかは100%確信していないと言っています。

4

2 に答える 2

11

DatePickerは、オプションaltFieldとを使用してこれを処理できますaltFormat

altField:日付ピッカーから選択した日付で更新される入力要素。このオプションを使用して、altFormatこのフィールド内の日付の形式を変更します。代替フィールドがない場合は空白のままにします。

$('#thedate').datepicker({
  dateFormat: 'dd-mm-yy',
  altField: '#thealtdate',
  altFormat: 'yy-mm-dd'
});
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
Shown Field: <input id="thedate" type="text" /><br />
Hidden Field : <input id="thealtdate" type="text" />

于 2012-06-19T17:09:36.373 に答える
3

これにアプローチする方法はたくさんありますが、これは私が一見それを処理する方法である可能性があります。

  1. 新しい日付値を格納するための非表示フィールドを追加します。
  2. 送信ボタンの送信時機能のイベントハンドラーを作成します。

  3. その関数で、正しくフォーマットされた新しい日付を作成します。

    var d = new Date($( "oldDateFormatPicker")。val()); $( "hiddenField")。val(d); trueを返します。

そのようなものは、少なくとも構文が少しずれているかもしれませんが、それは近いです。サーバー側のコードでは、日付ピッカーではなく非表示フィールドをポイントするだけです。

于 2012-06-19T16:19:32.973 に答える