0

何日も苦労し、さまざまなフォーラムを検索した後、ここで試してみます.

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」は偽であることが判明しました

4

1 に答える 1

3

この問題は、jquery.keyboard.extension-autocomplete.js の新しいバージョンで解決されました。

これによると 、JQuery-UI バージョンをチェックするためのオートコンプリート コードは JQuery-UI バージョン 1.10 で問題があり、以下の変更が jquery.keyboard.extension-autocomplete.js で行われました。

base.$autocomplete = base.$el.data('autocomplete'); //removed
base.$autocomplete = base.$el.data('autocomplete') || base.$el.data('uiAutocomplete'); //added
于 2014-01-12T09:39:38.340 に答える