2017-10-05 6 views
0

ここで、私のコードでは、単語はカンマで結合されます。スペースでカンマなしで参加するにはどうすればいいですか?私は1単語を入力してスペースを与えると、オートコンプリートショーを意味します。複数の単語を単語なしで結合するには、オートコンプリートのスペースだけで?

function split(val) { 
     return val.split(/, \s*/); 
    } 

    function extractLast(term) { 
     return split(term).pop(); 
    } 


    function on_type() { 
     $('#query').autocomplete(
       { 

        source : function(request, response) { 
         response($.ui.autocomplete.filter(availableTags, 
           extractLast(request.term))); 
        }, 

        focus : function() { 
         return false; 
        }, 
        select : function(event, ui) { 
         var terms = split(this.value); 
         terms.pop(); 
         terms.push(ui.item.value); 
         terms.push(" "); 
         this.value = terms.join(","); 
         return false; 
        } 
       }); 
    } 
+0

コンマの代わりにスペースを使用してみましたか? 'terms.join(" ");' –

+0

ええ、それはうまくいきません。このオプションは表示されません。 – ilovejava

+0

jQueryオートコンプリートのminLengthプロパティが変更されています。 minの長さを数値に設定すると、文字列全体を取得する必要があります。例を10に設定すると、オートコンプリート値は "1233567,9"になります。これは "1235679"に結合します – Programmer

答えて

1

詳細

ためjoinがここ

function myFunction() { 
 
    var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
 
    console.log(fruits.join(' ')) 
 
}
<button onclick="myFunction()">Join</button>

はjQueryのAutoCOMPをある一例として、これを試してみてくださいJavaScriptのthis.value = terms.join(" ")

ルックをお試しくださいあなたが望むように更新されたleteプラグイン。何を変更することだけではなく、コンマのスペースで文字列を分割し、スペースの代わりにコンマ

$(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(" "); //Spilt array with space instead of commas 
 
    } 
 

 
    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(" "); //Join array with space instead of commas 
 
       return false; 
 
      } 
 
     }); 
 
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/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> 
 

 
<div class="ui-widget"> 
 
    <label for="tags">Tag programming languages: </label> 
 
    <input id="tags" size="50"> 
 
</div>

私は、これはあなたがlookigされているソリューションであると思いますし、アレイに参加することです。

+0

Joinは自動的にカンマを追加しません 'var x = [1,2,3]; alert(x.join(" "))'。あなたが使用しているjqueryオートコンプリートと何か関係がありますが、ジョイントではできません(*何かを指定している限り) –

+0

@ilovejava添付している例を試してください。カンマを自動的に付けません。あなたのためにまだ起こっている場合、あなたの問題のためのフィドルを与えてください。 – Nitheesh

+0

プラグインを自動完成する@ilovejavaを使用していますか?あなたの問題のための仲間を与えることができますか? – Nitheesh

関連する問題