何日も苦労し、さまざまなフォーラムを検索した後、ここで試してみます.
jQuery UI オートコンプリート ウィジェットを Mottie Virtual Keyboard ( https://github.com/Mottie/Keyboard ) で動作させることができません。物理キーボードを使用している限り、ajax が読み込まれた値を使用した jQuery オートコンプリートは正常に機能します。仮想キーボードから 2 文字を入力すると、これらの文字は表示されますが、オートコンプリート リストは表示されません。物理キーボードで 3 番目の文字を入力すると、最初のリストが表示されます。したがって、物理的に入力されたデータは、仮想的に入力されたデータに正しく追加されます。Ajax の部分を省略して、テストとしていくつかの簡単な単語を使用しようとしましたが、同じ動作です。IE、Firefox、Chromeをチェックしました:すべて同じです。また、マウスを使用してオートコンプリート リストから値を選択しても機能しません。
誰でもこれを解決し、実際の例を作成しましたか?
ここに私のテストコードがあります:
<... load jQuery, virtual keyboard, CSS etc...>
<script>
$(document).ready(function() {
$(function() {
function log(message) {
$("<div>").text(message).prependTo("#log");
$("#log").scrollTop(0);
}
$('#sometext').keyboard({
usePreview: false,
position: {at: 'right bottom', of: '#log'}
}).autocomplete({
source: ['One', 'Two', 'Three', 'Musketiers'],
minLength: 1,
select: function(event, ui) {
if (ui.item) {
log("Selected: " + ui.item.label);
}
}
}).addAutocomplete();
});
});
</script>
<div class="ui-widget">
<label for="sometext">Some label: </label>
<input id="sometext" />
</div>
<div class="ui-widget" style="margin-top: 2em; font-family: Arial;">
<div id="log" style="height: 50px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>
更新: Mottie Virtual キーボードが jQuery オートコンプリートを見つけられないようです。ソース(88行目以降)では、次のように述べています。
// set up after keyboard is visible
base.autocomplete_setup = function() {
// look for autocomplete
base.$autocomplete = base.$el.data('autocomplete');
base.hasAutocomplete = (typeof(base.$autocomplete) === 'undefined') ? false : (base.$autocomplete.options.disabled) ? false : true;
「base.hasAutocomplete」は偽であることが判明しました