チェックボックスを使用してjqueryオートコンプリートから複数のオプションを選択します

マノジ

私はjqueryオートコンプリートを使用しています。

私は次のコードを試しています

HTML

<textarea class="search-element"></textarea>

脚本

var data = [
               "ActionScript",
               "AppleScript",
               "Asp",
               "BASIC",
               "C++",
               "Clojure",
               "COBOL",
               "ColdFusion"
        ];
        $(function () {
            var $this;
            var singleSelectOptions = {
                source: function (request, response) {
                   response($.map(data, function (item) {
                      return {
                        label: item,
                      }
                   }));
                },
                select: function (event, ui) {
                   $($this).autocomplete("close");
                   $($this).val($($this).val() + '\n' + ui.label)
                 },
                 minLength: 0,
                 open: function () {
                    $("ul.ui-menu").width($(this).innerWidth());
                 }
            }
            $(document).find('textarea[class*="search-element"]').live('keydown', function () {
                $($this).autocomplete(singleSelectOptions);
            }).live('focus', function () {
                $this = $(this);
                var text = $this.val();
                if (text == '') {
                    $($this).autocomplete(singleSelectOptions);
                    $($this).autocomplete("search");
                }
          });
        })

このコードを使用すると、一度に1つのオプションしか選択できませんが、チェックボックスを使用して複数のオプションを選択する必要があります

今、私の結果はこのように表示されています

ここに画像の説明を入力してください

しかし、次のような結果が必要です。チェックボックスをオンにするとオートコンプリートを閉じず、選択したオプションをコンマ区切りで関連するテキストエリアに入力し、チェックボックスをオフにするとそのオプションをテキストエリアから削除する必要があります。そして、textareaのテキストを更新することができます。

ここに画像の説明を入力してください

これが私のフィドルです

マノジ

私は次のコードを試しましたが、これで目標が達成されました。

HTML

 <textarea class="multiselect-element"></textarea>

脚本

 var data = [
                   "ActionScript",
                   "AppleScript",
                   "Asp",
                   "BASIC",
                   "C++",
                   "Clojure",
                   "COBOL",
                   "ColdFusion"
            ];
            function split(val) {
    return val.split(/,\s*/);
}
function extractLast(term) {
    return split(term).pop();
}
function bindAutoComplete(ele, options) {
    var text = ele.val();
    text = text == null || text == undefined ? "" : text;
    $(ele).autocomplete(options).data("autocomplete")._renderItem = function (ul, item) {
        var checked = (text.indexOf(item.label + ', ') > -1 ? 'checked' : '');
        return $("<li></li>")
            .data("item.autocomplete", item)
            .append('<a href="javascript:;"><input type="checkbox"' + checked + '/>' + item.label + '</a>')
            .appendTo(ul);
    };
}
$(function () {
    var $this;
    var multiSelectOptions = {
        minLength: 0,
        source: function (request, response) {
            response($.map(data, function (item) {
                return {
                    label: item
                }
            }));
        },
        focus: function () {
            // prevent value inserted on focus
            //$($this).autocomplete("search");
            return false;
        },
        select: function (event, ui) {
            var text = $this.val();
            text = text == null || text == undefined ? "" : text;
            var checked = (text.indexOf(ui.item.value + ', ') > -1 ? 'checked' : '');
            if (checked == 'checked') {
                this.value = this.value.replace(ui.item.value + ', ', '')
            }
            else {
                var terms = split(this.value);
                // remove the current input
                terms.pop();
                // add the selected item
                terms.push(ui.item.value);
                // add placeholder to get the comma-and-space at the end
                terms.push("");
                this.value = terms.join(", ");
            }
            return false;
        },
        open: function () {
           $("ul.ui-menu").width($(this).innerWidth());
        }
    }
    $(document).find('textarea[class*="multiselect-element"]').live('keydown', function () {
        bindAutoComplete($this, multiSelectOptions);
    }).live('focus', function () {
        $this = $(this);
        var text = $this.val();
        bindAutoComplete($this, multiSelectOptions);
        $($this).autocomplete("search");
    })
})

これが私の働くフィドルです

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JQuery別のチェックボックスをクリックして複数選択するいくつかのオプションを選択します

分類Dev

ActiveXチェックボックスループ-リンクされたセルオフセットを選択してから行をコピーします

分類Dev

複数のオプションが可能なチェックボックスとしてフィールドを持つウィジェットを選択

分類Dev

複数のオプションを使用してVuetifyオートコンプリートメニューのチェックボックスを非表示にするにはどうすればよいですか?

分類Dev

WPF:すべてのオプションのリストと選択されたオプションのリストを選択チェックボックスを使用してリストボックスにバインドする

分類Dev

ブートストラップ-選択からのオプションを使用してモーダルボックスを表示する方法は?

分類Dev

jQueryオートコンプリート-選択したコンボボックス値を渡します

分類Dev

anglejsのng-optionsを使用して、選択ボックスから複数のオプションを選択します

分類Dev

選択オプションを選択してボタンをクリックするためのJQueryコードが機能しませんか?

分類Dev

ドロップダウンリストのチェックボックスを選択した後、v-オートコンプリート(複数)検索入力をクリアするにはどうすればよいですか?

分類Dev

javascriptを使用して、ドロップダウンリストから選択したオプションをボックスに表示します

分類Dev

チェックボックスをオンにし、フィルターを使用した後に選択したオプションを選択します

分類Dev

反応-ドロップダウンから同じオプションを選択してチェックボックスを事前選択します

分類Dev

jquery multiple selectで選択したオプションのチェックボックスをクリアする

分類Dev

AngularJsのドロップダウンリストから複数のオプションを選択します

分類Dev

データ テーブル行をクリックしてドロップダウン リストからオプションを選択します

分類Dev

SFINAEを使用してC ++ 11の複数のオプションからコンストラクターを選択する方法

分類Dev

jQueryは選択ボックスからオプションを削除します

分類Dev

javascriptまたはjqueryを使用して選択ボックスオプションの最初のオプションから値を空にする方法は?

分類Dev

選択ドロップダウンリストからクリックしたオプションに応じてマーカーを変更します

分類Dev

選択したチェックボックスの値に基づいてドロップダウンリストオプションを取得する

分類Dev

AngularJS他のオプションを選択し、テキストボックスから値を取得します

分類Dev

ブートストラップ複数選択ドロップダウンは、optgroupから同じ値オプションの選択を解除します

分類Dev

オートコンプリートを使用してテキストボックス内のすべてのテキストを選択します(C#winforms)

分類Dev

セレンを使用してオートコンプリートテキストボックスからテキストを選択する方法

分類Dev

javaScriptを使用して特定のテキストボックス/選択オプションをリロードします

分類Dev

SELECTクエリから<オプション>として<選択>にデータをフェッチする方法

分類Dev

jqueryを使用してテキストボックス内に選択したオプションの数と値を出力します

分類Dev

Woocommerceチェックアウトのカスタム商品フィールド値から選択フィールドオプションを入力します

Related 関連記事

  1. 1

    JQuery別のチェックボックスをクリックして複数選択するいくつかのオプションを選択します

  2. 2

    ActiveXチェックボックスループ-リンクされたセルオフセットを選択してから行をコピーします

  3. 3

    複数のオプションが可能なチェックボックスとしてフィールドを持つウィジェットを選択

  4. 4

    複数のオプションを使用してVuetifyオートコンプリートメニューのチェックボックスを非表示にするにはどうすればよいですか?

  5. 5

    WPF:すべてのオプションのリストと選択されたオプションのリストを選択チェックボックスを使用してリストボックスにバインドする

  6. 6

    ブートストラップ-選択からのオプションを使用してモーダルボックスを表示する方法は?

  7. 7

    jQueryオートコンプリート-選択したコンボボックス値を渡します

  8. 8

    anglejsのng-optionsを使用して、選択ボックスから複数のオプションを選択します

  9. 9

    選択オプションを選択してボタンをクリックするためのJQueryコードが機能しませんか?

  10. 10

    ドロップダウンリストのチェックボックスを選択した後、v-オートコンプリート(複数)検索入力をクリアするにはどうすればよいですか?

  11. 11

    javascriptを使用して、ドロップダウンリストから選択したオプションをボックスに表示します

  12. 12

    チェックボックスをオンにし、フィルターを使用した後に選択したオプションを選択します

  13. 13

    反応-ドロップダウンから同じオプションを選択してチェックボックスを事前選択します

  14. 14

    jquery multiple selectで選択したオプションのチェックボックスをクリアする

  15. 15

    AngularJsのドロップダウンリストから複数のオプションを選択します

  16. 16

    データ テーブル行をクリックしてドロップダウン リストからオプションを選択します

  17. 17

    SFINAEを使用してC ++ 11の複数のオプションからコンストラクターを選択する方法

  18. 18

    jQueryは選択ボックスからオプションを削除します

  19. 19

    javascriptまたはjqueryを使用して選択ボックスオプションの最初のオプションから値を空にする方法は?

  20. 20

    選択ドロップダウンリストからクリックしたオプションに応じてマーカーを変更します

  21. 21

    選択したチェックボックスの値に基づいてドロップダウンリストオプションを取得する

  22. 22

    AngularJS他のオプションを選択し、テキストボックスから値を取得します

  23. 23

    ブートストラップ複数選択ドロップダウンは、optgroupから同じ値オプションの選択を解除します

  24. 24

    オートコンプリートを使用してテキストボックス内のすべてのテキストを選択します(C#winforms)

  25. 25

    セレンを使用してオートコンプリートテキストボックスからテキストを選択する方法

  26. 26

    javaScriptを使用して特定のテキストボックス/選択オプションをリロードします

  27. 27

    SELECTクエリから<オプション>として<選択>にデータをフェッチする方法

  28. 28

    jqueryを使用してテキストボックス内に選択したオプションの数と値を出力します

  29. 29

    Woocommerceチェックアウトのカスタム商品フィールド値から選択フィールドオプションを入力します

ホットタグ

アーカイブ