try:Vuejs+selectize.js

by cactus77kiki

HTML

<!--try:selectize-->
<div id="vue-app">
<select name="example" placeholder="請以Tab或Enter分隔查詢條件" id="input-tags" multiple="multiple"></select>
<button type="button" id="ssearch">查詢</button>
<button type="button" id="sclear">清空</button>
<br/><br/><br/>
<select name="example" placeholder="請以Tab或Enter分隔查詢條件" id="input-tags-bind" multiple="multiple" v-model="tagname"></select>
<button type="button" id="saddone">加入單一項目</button>
<button type="button" id="sadd">加入一群資料</button>
<button type="button" id="getdone">取得資料</button>
<br/><br/>
</div>

<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.1/css/selectize.default.css"/>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.1/js/standalone/selectize.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>

<!--
ref: https://stackoverflow.com/questions/45186268/how-can-i-use-selectize-in-an-input-form-in-vue
ref: https://stackoverflow.com/questions/37780929/use-selectize-with-data-binding-in-vuejs-component-with-vuex

demo:
https://selectize.github.io/selectize.js/
api:
https://github.com/selectize/selectize.js/blob/master/docs/api.md
usage:
https://github.com/selectize/selectize.js/blob/master/docs/usage.md
-->

CSS

body {
  background: blanchedalmond;
}

.exampleSearch {
  width: 250px;
  margin: 50px;
  display: block;
}

JavaScript

var app = new Vue({
  el: '#vue-app',
  data: {
    message: 'Hello Vue.js!',
    tagname: ['日本','東京','JR']
  }
})

$(document).ready(function(){
  var $insearch = $('#input-tags').selectize({
    plugins: ['remove_button'],
    maxItems: 3,
    //delimiter: ',',
    persist: false,
    create: function(input) {
        return {
            value: input,
            text: input
        }
    }
  
	});
  
  var $intag = $('#input-tags-bind').selectize({
    plugins: ['remove_button'],
    persist: false,
    create: function(input) {
        return {
            value: input,
            text: input
        }
    }
  });
  
  //清空  
  clearImgSi = function ()
  {
  	var selectize = $insearch[0].selectize;
    selectize.clear();
    selectize.clearOptions();
  }
  
  getitems = function()
  {
  	var selectize = $intag[0].selectize;
  	//console.log(selectize.getValue());
    /*var result=[];
    for(i=0;i<selectize.items.length;i++)    
    	result.push(selectize.items[i]);    
    console.log(result);*/
    var x=document.getElementById('input-tags-bind');
    for (var i = 0; i < x.options.length; i++) {
        if(x.options[i].selected ==true)
        {
            alert(x.options[i].text);
            //alert(x.options[i].value);
        }
    }
  }
  
  //加入單一項目
  additem = function()
  {
  	var selected_items = [1,2];
    var selectize = $intag[0].selectize;
  	selectize.clear();        //只清空input裡面的值,若已經加入的項目仍會在點按時可視)	
    selectize.clearOptions();	//clear all(如果需要保留項目在下拉時可視,不需此行)
    selectize.addOption(inviteList);
    selectize.setValue(2);	//未加入的項目仍會在點按時出現,可選擇
  }
  
  additems = function ()
  {    			
		var selected_items = [1,2,3];	//如果沒有全加,已經加入未顯示的項目仍會在點按時可視
    var selectize = $intag[0].selectize;
    selectize.clear();        	//clear all
    selectize.clearOptions();    
    selectize.addOption(items);
    selectize.setValue(selected_items);	//multiple				
  }  
    
    /*data*/
    var inviteList = [
    	{
      	text: 'Option One',
       ...