在输入框中添加data-role="tagsinput"
属性,输入框的值会自动转换为标签。
<input type="text" value="Amsterdam,Washington,Sydney,Beijing,Cairo" data-role="tagsinput" >
方法 | 返回值 |
$("select").val() | "Amsterdam,Washington,Sydney,Beijing,Cairo" |
$("select").tagsinput('items') | ["Amsterdam","Washington","Sydney","Beijing"] |
select
元素来制作标签通过<select multiple />元可以将下拉框中的所有option
转换为标签。
<select multiple data-role="tagsinput"> <option value="Amsterdam">Amsterdam</option> <option value="Washington">Washington</option> <option value="Sydney">Sydney</option> <option value="Beijing">Beijing</option> <option value="Cairo">Cairo</option></select>
方法 | 返回值 |
$("select").val() | ["Amsterdam","Washington","Sydney","Beijing","Cairo"] |
$("select").tagsinput('items') | ["Amsterdam","Washington","Sydney","Beijing"] |
该插件可以和typeahead.js结合使用,在输入标签时获取预定义的提示标签信息。示例需要在服务器环境下才能调用json数据。
<input type="text" value="Amsterdam,Washington" data-role="tagsinput" /><script>var citynames = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: { url: 'assets/citynames.json', filter: function(list) { return $.map(list, function(cityname) { return { name: cityname }; }); } }});citynames.initialize();$('input').tagsinput({ typeaheadjs: { name: 'citynames', displayKey: 'name', valueKey: 'name', source: citynames.ttAdapter() }});</script>
方法 | 返回值 |
$("select").val() | "Amsterdam,Washington" |
$("select").tagsinput('items') | ["Amsterdam","Washington"] |
除了使用字符串作为标签之外,你还可以使用对象作为标签。这样做的好处是你在获取标签值的时候,可以获取到该对象的id值。示例需要在服务器环境下才能调用json数据。
<input type="text" /><script>var cities = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: 'assets/cities.json'});cities.initialize();var elt = $('input');elt.tagsinput({ itemValue: 'value', itemText: 'text', typeaheadjs: { name: 'cities', displayKey: 'text', source: cities.ttAdapter() }});elt.tagsinput('add', { "value": 1 , "text": "Amsterdam" , "continent": "Europe" });elt.tagsinput('add', { "value": 4 , "text": "Washington" , "continent": "America" });elt.tagsinput('add', { "value": 7 , "text": "Sydney" , "continent": "Australia" });elt.tagsinput('add', { "value": 10, "text": "Beijing" , "continent": "Asia" });elt.tagsinput('add', { "value": 13, "text": "Cairo" , "continent": "Africa" });</script>
方法 | 返回值 |
$("select").val() | "1,4,7,10,13" |
$("select").tagsinput('items') | [{"value":1,"text":"Amsterdam","continent":"Europe"},{"value":4,"text":"Washington","continent":"America"},{"value":7,"text":"Sydney","continent":"Australia"},{"value":10,"text":"Beijing","continent":"Asia"},{"value":13,"text":"Cairo","continent":"Africa"}] |
可以通过颜色来区分不同情景的标签。
<input type="text" /><script>var cities = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'), queryTokenizer: Bloodhound.tokenizers.whitespace, prefetch: 'assets/cities.json'});cities.initialize();var elt = $('input');elt.tagsinput({ tagClass: function(item) { switch (item.continent) { case 'Europe' : return 'label label-primary'; case 'America' : return 'label label-danger label-important'; case 'Australia': return 'label label-success'; case 'Africa' : return 'label label-default'; case 'Asia' : return 'label label-warning'; } }, itemValue: 'value', itemText: 'text', typeaheadjs: { name: 'cities', displayKey: 'text', source: cities.ttAdapter() }});elt.tagsinput('add', { "value": 1 , "text": "Amsterdam" , "continent": "Europe" });elt.tagsinput('add', { "value": 4 , "text": "Washington" , "continent": "America" });elt.tagsinput('add', { "value": 7 , "text": "Sydney" , "continent": "Australia" });elt.tagsinput('add', { "value": 10, "text": "Beijing" , "continent": "Asia" });elt.tagsinput('add', { "value": 13, "text": "Cairo" , "continent": "Africa" });</script>
方法 | 返回值 |
$("select").val() | "1,4,7,10,13" |
$("select").tagsinput('items') | [{"value":1,"text":"Amsterdam","continent":"Europe"},{"value":4,"text":"Washington","continent":"America"},{"value":7,"text":"Sydney","continent":"Australia"},{"value":10,"text":"Beijing","continent":"Asia"},{"value":13,"text":"Cairo","continent":"Africa"}] |