1

jQuery UI の Datepicker を使用して、設定された日付をいくつかのフィールドに入力するという問題があります。

基本的に私がやろうとしているのは、日付が選択された後、テキストフィールドを更新してその日付の日を表示し(これは正常に機能していると思います)、選択した日でdivも更新します(これは単なるテスト目的のためのものです。将来やるべきことはたくさんありますが、これを少し整理するまではできません)。しかし、何らかの理由で自動的に更新されません。データを更新するには、クリック関数内に配置する必要がありますか?

コードは次のとおりです。

HTML:

<div id="widgetContainer">Date:
    <input type="text" id="datepicker" />
    <br />
    <input type="text" id="selected_day" size="30" value="" />
    <br />
    <select name="times">
        <option value="12pm" selected="selected">12pm</option>
        <option value="1pm">1pm</option>
        <option value="2pm">2pm</option>
        <option value="3pm">3pm</option>
        <option value="4pm">4pm</option>
        <option value="5pm">5pm</option>
        <option value="6pm">6pm</option>
        <option value="7pm">7pm</option>
        <option value="8pm">8pm</option>
        <option value="9pm">9pm</option>
        <option value="10pm">10pm</option>
        <option value="11pm">11pm</option>
    </select>
    <div id="result">Result:</div>
</div>

jquery:

$(document).ready(function () {
    $(function () {
        $("#datepicker").datepicker({
            altField: "#selected_day",
            altFormat: "DD"
        });
        $('#selected_day').change(function () {
            var day = this.val();
            $('#result').text('Result:' + day);
        });
    });
});

フィドル - http://jsfiddle.net/andyjh07/c3u5B/

ありがとう!

4

2 に答える 2

2

script で input の値を更新すると、 change イベントがトリガーされないため、自分でトリガーする必要があります。これを管理するには、datepicker 内でイベントを使用できます。

 $("#datepicker").datepicker({
        altField: "#selected_day",
        altFormat: "DD",
        onSelect:function(){
            $('#selected_day').change()
        }
    });

デモ: http://jsfiddle.net/c3u5B/12/

alt フィールドに変更ハンドラーが本当に必要かどうかわからず、datepicker 内から更新を行うだけでよい

于 2013-04-04T09:29:09.140 に答える