【发布时间】:2021-12-03 04:15:40
【问题描述】:
嗨朋友们,我正在为我的项目使用this source 标签输入,但我只需要输入 5 个标签,之后它不应该允许将标签输入到输入字段中。 输入框现在可以接收无限标签了,但是不知道怎么限制
请指导我
提前致谢。
function tagSelect() {
return {
open: false,
textInput: '',
tags: [],
init() {
this.tags = JSON.parse(this.$el.parentNode.getAttribute('data-tags'));
},
addTag(tag) {
tag = tag.trim()
if (tag != "" && !this.hasTag(tag)) {
this.tags.push( tag )
}
this.clearSearch()
this.$refs.textInput.focus()
this.fireTagsUpdateEvent()
},
fireTagsUpdateEvent() {
this.$el.dispatchEvent(new CustomEvent('tags-update', {
detail: { tags: this.tags },
bubbles: true,
}));
},
hasTag(tag) {
var tag = this.tags.find(e => {
return e.toLowerCase() === tag.toLowerCase()
})
return tag != undefined
},
removeTag(index) {
this.tags.splice(index, 1)
this.fireTagsUpdateEvent()
},
search(q) {
if ( q.includes(",") ) {
q.split(",").forEach(function(val) {
this.addTag(val)
}, this)
}
this.toggleSearch()
},
clearSearch() {
this.textInput = ''
this.toggleSearch()
},
toggleSearch() {
this.open = this.textInput != ''
}
}
}
【问题讨论】:
-
if (tag != "" && !this.hasTag(tag) && this.tags.length < 5) this.tags.push(tag)。我相信您应该能够查找标签数组的条目。如果小于5,则可以push到数组中,否则不行。
标签: javascript alpine.js