1

フォームがあり、2 つのフィールドを同じにする必要があります。最初のものを設定した後、javascriptを使用して2番目のものを最初のものと同じにしようとしています。

これがJavaScriptです(私のタグの上)

 <script type="text/javascript" charset="utf-8">    
      function updateDate(){        
      startDate = document.getElementById("startdate").value;      
      document.getElementById("enddate").value = startDate;
 } </script>

HTMLは次のとおりです。

 <span class="em-events-search-dates em-date-range">
 <input type="text" id="startdate" class="em-date-input-loc em-date-start" onchange="updateDate();" />
 <input type="hidden" class="em-date-input" name="scope[0]" value="<?php if( !empty($_REQUEST['scope'][0]) ) echo $_REQUEST['scope'][0]; ?>" />
 <input type="text" id="enddate" class="em-date-input-loc em-date-end" />
 <input type="hidden" class="em-date-input" name="scope[1]" value="<?php if( !empty($_REQUEST['scope'][1]) ) echo $_REQUEST['scope'][1]; ?>" />
 </span>

私が抱えている問題は、フォーム フィールドをクリックすると日付セレクターが開くことです。この正確なプラグインを使用していると確信していますhttp://jqueryui.com/demos/datepicker/

残念ながら、これは、日付が選択された後に実際にフォーム フィールドをクリックすることはなく、何も入力しないことを意味します。

2番目のフィールド(クラスem-date-inputの非表示のフィールド)でonmouseoutを試しましたID startdateの最初の要素でonchangeを試しました

戻って日付が選択された状態で表示されているフィールドをクリックした場合にのみ、機能するものはいくつかあります。問題は、ユーザーがこれを行うことは決してないということです。

onsubmit="updateDate();" を入れてみました 送信ボタンをクリックすると、フォームを送信する前に2番目の日付が変更されることを期待しています..運が悪い. 助言がありますか?

編集:何が機能していて何が機能していないかを確認するためのアラートを追加しました

 <input type="text" onchange="alert('first');" id="startdate" class="em-date-input-loc em-date-start" />
 <input type="hidden" onchange="alert('second');" class="em-date-input" name="scope[0]" value="<?php if( !empty($_REQUEST['scope'][0]) ) echo $_REQUEST['scope'][0]; ?>" />
 <input type="text" onchange="alert('third');" id="enddate" class="em-date-input-loc em-date-end" />
 <input type="hidden" onchange="alert('fourth');" class="em-date-input" name="scope[1]" value="<?php if( !empty($_REQUEST['scope'][1]) ) echo $_REQUEST['scope'][1]; ?>" />

2 番目のボックス (id="enddate") の日付を変更すると、3 番目のアラートが発生します。最初のボックスの日付を複数回変更したり、入力して変更したりしても、他のアラートは発生しません。

4

3 に答える 3

2

イベントを送信する前にフォームを使用する:

onsubmit="return YOUR_FUNCTION_HERE()"

送信ボタンを追加するだけです。

次に、その関数内に値を設定します。

var YOUR_FUNCTION_HERE = function(){
    //set your hidden inputs
}
于 2012-08-15T20:58:12.703 に答える
1

私があなたの質問を理解したなら、あなたはこれが欲しいかもしれません(あなたの質問について少し混乱しています)

$(function(){
    $('#startdate, #enddate').datepicker();
    $('#startdate').on('change', function(e){
        $('#enddate').val($('#startdate').val());
    });
});​

デモまたはこれ。

于 2012-08-15T21:26:36.517 に答える
0

onchangeイベントを に接続し、イベントがtextbox発生した後にデータをコピーする必要があります。日付ピッカーが値を更新すると、起動するはずです。

于 2012-08-15T20:54:18.300 に答える