html输入框插件,Bootstrap tagsinput标签输入框插件

本文介绍了如何使用Bootstrap tagsinput插件将输入框转换为标签输入框,包括基本使用方法、与select元素的结合、与typeahead.js的整合,以及如何使用对象作为标签并展示不同情景的标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本示例

在输入框中添加data-role="tagsinput"属性,输入框的值会自动转换为标签。

方法

返回值

$("select").val()

"Amsterdam,Washington,Sydney,Beijing,Cairo"

$("select").tagsinput('items')

["Amsterdam","Washington","Sydney","Beijing"]

通过select元素来制作标签

通过元可以将下拉框中的所有option转换为标签。

Amsterdam

Washington

Sydney

Beijing

Cairo

Amsterdam

Washington

Sydney

Beijing

Cairo

方法

返回值

$("select").val()

["Amsterdam","Washington","Sydney","Beijing","Cairo"]

$("select").tagsinput('items')

["Amsterdam","Washington","Sydney","Beijing"]

与typeahead.js结合使用

该插件可以和typeahead.js结合使用,在输入标签时获取预定义的提示标签信息。示例需要在服务器环境下才能调用json数据。

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()

}

});

方法

返回值

$("select").val()

"Amsterdam,Washington"

$("select").tagsinput('items')

["Amsterdam","Washington"]

使用对象作为标签

除了使用字符串作为标签之外,你还可以使用对象作为标签。这样做的好处是你在获取标签值的时候,可以获取到该对象的id值。示例需要在服务器环境下才能调用json数据。

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" });

方法

返回值

$("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"}]

情景类标签

可以通过颜色来区分不同情景的标签。

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" });

方法

返回值

$("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"}]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值