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でアイテムを選択してから入力し、何も起こりません!