それを行う方法はありますか?基本的に、それに依存する他のフィールドがあるため、ユーザーがフィールドをクリアしたことを検出したいと思います。変更イベントを使用しましたが、入力ボックスをクリアしても発生しませんでした。
助言がありますか?
それを行う方法はありますか?基本的に、それに依存する他のフィールドがあるため、ユーザーがフィールドをクリアしたことを検出したいと思います。変更イベントを使用しましたが、入力ボックスをクリアしても発生しませんでした。
助言がありますか?
focusoutを使用して、 text_inputがクリアされているかどうかを確認できます(その後、 id_inputをクリアします)
// check if autocomplete has been cleared
$("#text_input").focusout(function() {
if ($("#text_input").val() == '') {
$('#id_input').val('');
}
});
ユーザーがフィールドをクリアしていることを確認するために、いくつかの異なるハンドラーを使用することをお勧めします
$(document).on('keyup, keydown, blur, change' , '.myTxtBox', function(){
var text = $(this).val();
if text = "" {}
});
ユーザーが強調表示されていないことを確認したい場合は、 keyup で検出しやすいキーと key down で検出しやすいキーがあります。いくつかの異なるハンドラーが必要です
関数を jQuery の keyup イベントにバインドし、その関数でフィールドの .val() の長さをチェックするのはどうですか?
これは、ほとんどすべてのブラウザーで正常に機能します。IE Mobile 9 では、yeyup イベントの後までフィールドの内容が更新されないため、フィールド値を読み取る前に時間遅延を設定する必要があります。
モデレーターへの注意: 愚かな Web サイトのせいで、この回答を入力するのに 3 分も待たされました。
マイクが提案したのと同様のアプローチを使用しますが、結果が選択されておらず、入力が空でない可能性があるため、のキーアップイベントのa#ui-active-menuitem
代わりに長さをチェックします。(例: ユーザーが上矢印キーを押してリストの結果をぼかした場合)val()
input[type="text"]
input.on('keyup', function(){
if(! $('a#ui-active-menuitem').length ) ...
});