9

jquery-ui を使用して入力ボックスをオートコンプリートし、選択した項目から非表示の値を設定しました。

これは私が

 select: function(event, ui) { ...$("#myDiv").val(ui.item.value)... } 

オプション(現在は間違っている可能性があります。コードは手元にありませんが、私の質問までは機能します...)

マウスでメニューからアイテムを選択すると機能しますが、テキストを入力してEnterでアイテムを選択すると、何も実行されず、オートコンプリート機能によって選択がまったく実行されないかのようになります。ただし、ボックスの外でタブを押すと、選択がトリガーされます。

私はフォーカスと変更を使用しました: 必要なフィールドも更新しますが、ユーザーが項目を選択することを確認するために、フォーカス、変更、選択のすべてを指定する必要がある場合、これはやり過ぎだと思います。実際に選択されるリスト。

ありがとうございました。

rofly: jquery-ui オートコンプリートを使用しています。指定したコードがありますが、次のようになります (jquery.ui.autocomplete.js から)


case keyCode.ENTER:
                case keyCode.NUMPAD_ENTER:
                    // when menu is open or has focus
                    if ( self.menu.active ) {
                        event.preventDefault();
                    }
                    //passthrough - ENTER and TAB both select the current element
                case keyCode.TAB:
                    if ( !self.menu.active ) {
                        return;
                    }
                    self.menu.select( event );
                    break;

それはすべてダンディに見えるので、これが原因で失敗するかどうかはわかりません.

私のコードはこのようなものです(document.read()にラップされています

$("#someDiv").attr("autocomplete", 'off');
$("#someDiv").autocomplete({
source: function(request, response) {
if ( request.term in cache ) {
response( cache[ request.term ] );
return;
}
$.ajax({
url: "giveMeJSON.jsp",
dataType: "json",
data: request,
success: function( data ) {
cache[ request.term ] = data;
response( data );
}
})},
minLength: 1,
delay: 300,
select: function(event, ui) {
$("#someDiv").val(ui.item.label);
$("#hiddenDiv").val(ui.item.value);
}
});

したがって、問題は、ユーザーがマウスでメニューから選択している場合、およびフィールドからタブアウトする場合(keyUp、keyDownを選択してからタブアウトする場合)に機能しますが、keyUp、keyDownでアイテムを選択してから入力し、何も起こりません!

4

3 に答える 3

6

jQuery 1.4.2 と jQuery-ui 1.8.7 でも同様のインスタンスが機能します。1 つの注意点として、Enter は、リストからアイテムを選択するときにのみ機能するように見えます。存在しない新しいエントリを作成している場合、Enter キーを押しても、select または change イベントはトリガーされません。そのような状況を回避するには、別のイベント ハンドラーをバインドする必要がありました。

于 2011-01-06T16:53:02.867 に答える
2

このパラメータを持っていますか?オートフォーカスを設定
: true

こちらの回答を参照してください: https://stackoverflow.com/a/9243511/74585

于 2014-07-11T06:43:12.470 に答える
2

これは、オートコンプリート後にフォームを送信していた場所で機能しました。

    $("input#searchbox").autocomplete({
  source: autocomplete,
  select: function(event, ui) {  }
    $("input#searchbox").val(ui.item.value);
    $("#searchform").submit();
  }
})

Jquery のオートコンプリートを使用したクリック時の検索から

于 2011-05-06T17:39:10.150 に答える