アプリケーションにいくつかの日付コントロールがあり、JQuery UI カレンダー コントロールをダイアログ イメージ セレクターとして追加しました。
<input type="text" id="punchStartDate" class="EndDateClass" name="punchStartDate" />
カレンダー コントロールを追加する方法は次のとおりです。
jQuery("input.EndDateClass").datepicker({
showOn: "button",
buttonImage: "../images/calendar.gif",
buttonImageOnly: true,
dateFormat: dateFormat.replace("DD", "dd").replace("D", "d").replace("MM", "mm").replace("M", "m").replace("yyyy", "yy"),
beforeShow: function (input, inst) {
if (jQuery(this).is(':disabled')) {
return false;
}
}
});
これは問題なく動作しますが、onchange イベントも追加したいくつかのコントロールがあります。これらを使用すると、カレンダー コントロールは引き続き入力を表示して入力しますが、日付が選択されてもダイアログは消えません。これは定期的にしか発生しないため、競合状態が疑われます。
これを引き起こす入力は次のとおりです。
<input type="text" id="punchStartDate" class="EndDateClass" name="punchStartDate" onchange="CheckWeekdays.SetCheckBoxes('punch');" />
onchange イベントがダイアログの hide イベントをブロックしていると思われますが、これを修正する方法がわかりません。競合する JavaScript 呼び出し間のこの競合状態を修正するにはどうすればよいですか?