3

console.logjQuery UI Datepickerで日付を選択すると、行が実行されない理由を誰かに教えてもらえますか?

<script type="text/javascript">
    $(window).ready(function() {
        $(function() {
            $("#datepicker").datepicker({ altField: '#dateIntermediate'});
        });
        $('#dateIntermediate').change(function(){ 
            console.log("dateIntermediate changed");
        });
    });
</script>
<p>Date: <input id="datepicker" type="text"></p>
<input type="hidden" id="dateIntermediate" />
4

1 に答える 1

6

これらの場合、ブラウザーはchangeイベントを発生させません (スクリプトで値を設定します) が、いつ発生するかを知りたい場合は、次のように日付ピッカーのonSelectハンドラーを使用できます。

$(function() {
  $("#datepicker").datepicker({ 
    altField: '#dateIntermediate',
    onSelect: function() { 
      alert('Current #dateIntermediate value: ' + $("#dateIntermediate").val());
    }
  });
});

ここでテストできます。または、代わりchangeに、同じ方法で現在持っているハンドラーをトリガーできます。

$(function() {
  $("#datepicker").datepicker({ 
    altField: '#dateIntermediate',
    onSelect: function() { 
      $("#dateIntermediate").change();
    }
  });
  $('#dateIntermediate').change(function(){ 
    console.log("dateIntermediate changed");
  });
});​

ここでテストできます


余談ですが、そこにラッパーは必要ありません。ラッパーによって既に処理されているものと$(window).ready(function() { });同等です。すべてが同じ場所に行くため、現在の方法は機能しますが、複数のラッパーは必要ないため、外側のラッパーを削除するだけです:)$(document).ready(function() { });$(function() { });$(anything).ready()

于 2010-07-24T13:08:24.060 に答える