var tagInput = {
isInited: false,
init: init,
bindEvent: bindEvent,
addTag: addTag,
removeTag: removeTag
};
tagInput.init();
function init() {
var that = this;
if (that.isInited) return;
that.isInited = true;
// 请修改这一行代码,保存class为js-input的输入框的dom元素引用
that.input = document.getElementsByClassName('js-input')[0];
that.bindEvent();
}
function bindEvent() {
var that = this;
var input = that.input;
window.input = that.input
if (!input) return;
input.addEventListener('keydown', function (event) {
// 请修改这一行代码,判断用户是否按了回车键
var isEnter = event.keyCode == 13;
// 请修改这一行代码,判断用户是否按了删除键
var isDelete = event.keyCode == 8;
(isEnter || isDelete) && event.preventDefault();
isEnter && that.addTag();
isDelete && that.removeTag();
});
input.parentNode.addEventListener('click', function () {
input.focus();
});
}
function addTag(e) {
let _self = this
let tmp = _self.input.value
if (tmp.length < 1) return
let parentNode = document.getElementsByClassName('tag-input')[0]
let ele = document.createElement('span')
ele.className = 'tag'
ele.innerText = _self.input.value
let box = document.getElementsByClassName('js-input')[0]
parentNode.insertBefore(ele, box)
_self.input.value = ''
}
function removeTag(e) {
let _self = this
if (_self.input.value.length<1){
let tags = document.getElementsByClassName('tag')
if(tags.length>0) {
tags[tags.length-1].remove()
}
} else {
let tmp = _self.input.value
_self.input.value = ''
for (let i=0,imax=tmp.length - 1; i<imax; i++) {
_self.input.value += tmp[i]
}
}
}