jQuery Mobile には、フィルター処理されたリストビューがあります。フィルターにテキストを入力した後、リストはフィルター処理されますが、GO ボタンを押してもキーボードは非表示になりません。
ユーザーは、GO を押した後にキーボードが非表示になることを期待しています。それを達成する方法はありますか?
jQuery Mobile には、フィルター処理されたリストビューがあります。フィルターにテキストを入力した後、リストはフィルター処理されますが、GO ボタンを押してもキーボードは非表示になりません。
ユーザーは、GO を押した後にキーボードが非表示になることを期待しています。それを達成する方法はありますか?
次のように、Javascript を使用して入力フィールドからフォーカスを手動で削除する必要があります。
$('.ui-listview-filter .ui-input-text').live('keyup', function(event) {
if (event.keyCode == 13) {
// 'Go' pressed
$('.ui-listview-filter .ui-input-text').trigger('blur');
}
});
古いバージョンのjQuery(モバイル)で動作するPabloの回答のバリアント:
// this is here to close the on-screen keyboards of mobile devices when the "go" button is used
$("input[data-type='search']").on('keyup', function(event) {
if (event.keyCode == 13) { // Enter or 'Go' pressed
event.target.blur(); // remove focus on the search field so keyboard goes away
}
});
キーを押した後にフォーカスを変更してみてください。例えば:
//this will un-select the text box, hiding keyboard
$('#searchInputId').blur();
//this will focus on something else, hiding keyboard
$('#somethingOtherThanTheSearch').focus();