2017-04-03 14 views
1

CKEditorでJQuery UIオートコンプリート機能を実装しようとしていますが、動作していません。いくつかの例と解決策を見ましたが、ユーザーがドロップダウンリストに "#"を入力するとオプションが表示されます。私が望むのは、単語のリストから入力中に、テキストエディタのようにオンザフライでオートコンプリート候補を取得することです。私はコードのようなものが欲しいが、テキストエリアではなくCKeditorにある。CKeditorでJQuery UIオートコンプリート機能を実装しています

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>jQuery UI Autocomplete - Multiple values</title> 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> 
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
    <script src="https://cdn.ckeditor.com/4.6.2/standard/ckeditor.js"></script> 
</head> 
<body> 

<div class="ui-widget"> 
    <!--<input id="tags" size="50">--> 
    <textarea id="tags"></textarea> 
</div> 
<script> 
// CKEDITOR.replace('tags'); 
    $(function() { 
     var availableTags = [ 
      "ActionScript", 
      "AppleScript", 
      "Asp", 
      "BASIC", 
      "C", 
      "C++", 
      "Clojure", 
      "COBOL", 
      "ColdFusion", 
      "Erlang", 
      "Fortran", 
      "Groovy", 
      "Haskell", 
      "Java", 
      "JavaScript", 
      "Lisp", 
      "Perl", 
      "PHP", 
      "Python", 
      "Ruby", 
      "Scala", 
      "Scheme" 
     ]; 
     function split(val) { 
      return val.split(/ \s*/); 
     } 
     function extractLast(term) { 
      return split(term).pop(); 
     } 

     $("#tags") 
     // don't navigate away from the field on tab when selecting an item 
      .on("keydown", function(event) { 
       if (event.keyCode === $.ui.keyCode.TAB && 
        $(this).autocomplete("instance").menu.active) { 
        event.preventDefault(); 
       } 
      }) 
      .autocomplete({ 
       minLength: 0, 
       source: function(request, response) { 
        // delegate back to autocomplete, but extract the last term 
        response($.ui.autocomplete.filter(
         availableTags, extractLast(request.term))); 
       }, 
       focus: function() { 
        // prevent value inserted on focus 
        return false; 
       }, 
       select: function(event, ui) { 
        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; 
       } 
      }); 
    }); 
</script> 

</body> 
</html> 

答えて

0

あなたがオートコンプリートライブラリによって制限されていない場合は、At.jsは、特定のタグで動作するように書かれていた - 絵文字ため、ユーザの参照用@、または:を使用。 CKEditorと統合する方法については、wiki pageもあります。

+0

参照用にのみ有効にしたくないです。私が望むのは、コードエディタで書くときと似たようなものです。だからあなたが入力している間、あなたはキーワードやものの提案を得る。 –

関連する問題