【发布时间】:2017-05-30 12:42:19
【问题描述】:
document.getElementById('taginput').addEventListener('paste',function(e){
var clipboardData, pastedData, inputdata, tempData, tempTags = [], currentTags = [], out = '';
clipboardData = e.clipboardData || window.clipboardData;
pastedData = clipboardData.getData('Text');
inpudata = document.getElementById('taginput').value + pastedData;
tempData = pastedData.split(',');
for (var i = 0; i < tempData.length - 1; i++) {
if(tempTags.indexOf(tempData[i].trim()) === -1) tempTags.push(tempData[i].trim());
}
Array.prototype.slice.call(document.getElementsByTagName('dynamictags')[0].children).forEach(function(data){
currentTags.push(data.innerText);
});
tempTags.forEach(function(data){
if (currentTags.indexOf(data) === -1) out += '<res>' + data + '</res>';
});
document.getElementsByTagName('dynamictags')[0].innerHTML = document.getElementsByTagName('dynamictags')[0].innerHTML + out;
this.value = '';
this.value = tempData[tempData.length - 1].trim();
}, false);
这是我当前的代码,这个实现的问题是this.value = '' 不会重置输入字段,this.value = tempData[tempData.length - 1].trim();
}, false); 会简单地在输入字段中的用户输入之前添加新文本。
例如,如果我将apple, apple , orange, banana 粘贴到该字段中,它将保留并添加香蕉并变为banana apple, apple , orange, banana。
【问题讨论】:
-
this.value == ''; => 请注意,== 是比较运算符,而不是赋值运算符。
标签: javascript shadow-dom