[解決済み】jQuery Datepickerのonchangeイベント問題
2022-04-03 02:59:40
質問
フィールドを変更すると検索ルーチンが呼び出されるJSコードを持っています。問題は、Datepickerが入力フィールドを更新したときに発生するjQueryイベントを見つけることができないことです。
なぜか、Datepicker がフィールドを更新しても change イベントは呼び出されません。カレンダーがポップアップするときにフォーカスが変わるので、それも使えません。何かアイデアはありますか?
どうすればいいですか?
日付ピッカーの
onSelect
イベント
.
$(".date").datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
}
});
ライブ例 :
$(".date")
.datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
}
})
.on("change", function() {
console.log("Got change event from field");
});
<link href="https://code.jquery.com/ui/1.9.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<input type='text' class='date'>
<script src="https://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
残念ながら
onSelect
は、日付が選択されるたびに、たとえそれが変更されていなくても起動します。これはdatepickerの設計上の欠陥で、常に
onSelect
(何も変化していなくても)そして
は
は、変更時に基礎となる入力に対して何らかのイベントを発生させます。(この例のコードを見ると、変更をリッスンしていますが、イベントが発生しません)。おそらく、変化したときに入力に対してイベントを発生させるべきでしょう (おそらく、通常の
change
イベントか、あるいはdatepicker専用のイベントか、どちらかです)。
もちろん、お好きな方には
change
イベントを
input
を発射する。
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
これは、次のように発射されます。
change
の下にある
input
jQueryでフックされたハンドラに対して。しかし、繰り返しになりますが、それは
常に
を発射します。もし本当に変化したときだけ起動させたいなら、前の値を保存しておく必要があります (たぶん
data
) と比較します。
ライブ例 :
$(".date")
.datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
$(this).change();
}
})
.on("change", function() {
console.log("Got change event from field");
});
<link href="https://code.jquery.com/ui/1.9.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<input type='text' class='date'>
<script src="https://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
関連
-
[解決済み] リーフレット - 既存のマーカーを検索したり、マーカーを削除するには?
-
[解決済み] jQueryでborder-bottomの色を変更する?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] jQueryでテーブルの行を追加する
-
[解決済み] jQuery データ属性の値に基づいて要素を検索する方法は?
-
[解決済み] JavaScript / jQuery のイベントバインディングを Firebug などでデバッグするには?
-
[解決済み] 入力にフォーカスがあるかどうかをテストするためにjQueryを使用する
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Chrome Developer ToolsでリソースがDocumentと解釈され、MIMEタイプapplication/jsonの警告で転送される。
-
[解決済み】jQueryでクリックされた要素のIDを取得する方法
-
[解決済み] jQuery onclick が動的に挿入された HTML 要素で発火しない?重複
-
[解決済み] jQuery - 不正な呼び出し
-
[解決済み] jQueryは、すべてのテキストフィールドの値の合計を計算する
-
[解決済み] jQueryで文字色を変更するにはどうすればよいですか?
-
[解決済み] AJAXを同期させる(SJAX)にはどうすればよいか
-
[解決済み] jQuery On Clickが動作しない
-
[解決済み] jQueryを使って要素のIDを取得するにはどうすればよいですか?
-
[解決済み] チェックボックスのオン/オフの切り替え