added copy and paste support for tags input
This commit is contained in:
@@ -299,8 +299,7 @@
|
|||||||
if (self.$element.attr('disabled')) {
|
if (self.$element.attr('disabled')) {
|
||||||
self.$input.attr('disabled', 'disabled');
|
self.$input.attr('disabled', 'disabled');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (event.which) {
|
switch (event.which) {
|
||||||
// BACKSPACE
|
// BACKSPACE
|
||||||
case 8:
|
case 8:
|
||||||
@@ -339,7 +338,31 @@
|
|||||||
$nextTag.after($inputWrapper);
|
$nextTag.after($inputWrapper);
|
||||||
$input.focus();
|
$input.focus();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
//COPY EVENT
|
||||||
|
case 67:
|
||||||
|
if (event.ctrlKey) {
|
||||||
|
event.preventDefault();
|
||||||
|
navigator.clipboard.writeText(self.itemsArray.join(" "));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
//PASTE EVENT
|
||||||
|
case 86:
|
||||||
|
if (event.ctrlKey) {
|
||||||
|
setTimeout(function () {
|
||||||
|
var pastedString = $input.val();
|
||||||
|
//clear pasted string.
|
||||||
|
$input.val('');
|
||||||
|
//process input one by one.
|
||||||
|
if (pastedString.length > 0) {
|
||||||
|
var tagsToAdd = pastedString.split(" ");
|
||||||
|
tagsToAdd.forEach(x => {
|
||||||
|
self.add(x);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 250);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
// ignore
|
// ignore
|
||||||
}
|
}
|
||||||
@@ -358,17 +381,13 @@
|
|||||||
maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
|
maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
|
||||||
if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
|
if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
|
||||||
//check if confirm keys are in input and then replace them.
|
//check if confirm keys are in input and then replace them.
|
||||||
|
event.preventDefault();
|
||||||
text = text.replace(String.fromCharCode(event.which), "")
|
text = text.replace(String.fromCharCode(event.which), "")
|
||||||
// Only attempt to add a tag if there is data in the field
|
// Only attempt to add a tag if there is data in the field
|
||||||
if (text.length !== 0) {
|
if (text.length !== 0) {
|
||||||
self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
|
self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
|
||||||
$input.val('');
|
$input.val('');
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the field is empty, let the event triggered fire as usual
|
|
||||||
if (self.options.cancelConfirmKeysOnEmpty === false) {
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
var textLength = $input.val().length,
|
var textLength = $input.val().length,
|
||||||
wordSpace = Math.ceil(textLength / 5),
|
wordSpace = Math.ceil(textLength / 5),
|
||||||
@@ -388,17 +407,13 @@
|
|||||||
maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
|
maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
|
||||||
if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
|
if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
|
||||||
//check if confirm keys are in input and then replace them.
|
//check if confirm keys are in input and then replace them.
|
||||||
text = text.replace(String.fromCharCode(event.which), "")
|
event.preventDefault();
|
||||||
|
text = text.replace(String.fromCharCode(event.which), "");
|
||||||
// Only attempt to add a tag if there is data in the field
|
// Only attempt to add a tag if there is data in the field
|
||||||
if (text.length !== 0) {
|
if (text.length !== 0) {
|
||||||
self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
|
self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
|
||||||
$input.val('');
|
$input.val('');
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the field is empty, let the event triggered fire as usual
|
|
||||||
if (self.options.cancelConfirmKeysOnEmpty === false) {
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset internal input's size
|
// Reset internal input's size
|
||||||
|
|||||||
Reference in New Issue
Block a user