フォームがあり、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 番目のアラートが発生します。最初のボックスの日付を複数回変更したり、入力して変更したりしても、他のアラートは発生しません。