fixed tags input on android device.

This commit is contained in:
DESKTOP-GENO133\IvanPlex
2024-02-24 16:39:26 -07:00
parent 0dbaa68fc0
commit b7b7d6ad3e

View File

@@ -363,6 +363,13 @@
}, 250); }, 250);
} }
break; break;
//ENTER EVENT
case 13:
case 32:
var tagToAdd = $input.val();
$input.val('');
self.add(tagToAdd);
break;
default: default:
// ignore // ignore
} }
@@ -374,53 +381,18 @@
$input.attr('size', Math.max(this.inputSize, size)); $input.attr('size', Math.max(this.inputSize, size));
}, self)); }, self));
self.$container.on('input', 'input', $.proxy(function (event) { self.$container.on('input', 'input', $.proxy(function(event) {
if (event.originalEvent.data == undefined) { var $input = $(event.target);
var $input = $(event.target); //check if the previous inserted value was a space.
var text = $input.val(), var text = $input.val();
maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars; if (text.length > 0) {
if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) { var lastChar = text.charAt(text.length - 1);
//check if confirm keys are in input and then replace them. if (lastChar == " ") {
event.preventDefault(); text = text.replace(" ", "");
text = text.replace(String.fromCharCode(event.which), "") self.add(text);
// Only attempt to add a tag if there is data in the field $input.val('');
if (text.length !== 0) { }
self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text); }
$input.val('');
}
}
var textLength = $input.val().length,
wordSpace = Math.ceil(textLength / 5),
size = textLength + wordSpace + 1;
$input.attr('size', Math.max(this.inputSize, size));
};
}));
self.$container.on('keypress', 'input', $.proxy(function(event) {
var $input = $(event.target);
if (self.$element.attr('disabled')) {
self.$input.attr('disabled', 'disabled');
return;
}
var text = $input.val(),
maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;
if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {
//check if confirm keys are in input and then replace them.
event.preventDefault();
text = text.replace(String.fromCharCode(event.which), "");
// Only attempt to add a tag if there is data in the field
if (text.length !== 0) {
self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);
$input.val('');
}
}
// Reset internal input's size
var textLength = $input.val().length,
wordSpace = Math.ceil(textLength / 5),
size = textLength + wordSpace + 1;
$input.attr('size', Math.max(this.inputSize, size));
}, self)); }, self));
// Remove icon clicked // Remove icon clicked
@@ -577,33 +549,4 @@
} }
return (iCaretPos); return (iCaretPos);
} }
/**
* Returns boolean indicates whether user has pressed an expected key combination.
* @param object keyPressEvent: JavaScript event object, refer
* http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
* @param object lookupList: expected key combinations, as in:
* [13, {which: 188, shiftKey: true}]
*/
function keyCombinationInList(keyPressEvent, lookupList) {
var found = false;
$.each(lookupList, function (index, keyCombination) {
if (typeof (keyCombination) === 'number' && keyPressEvent.which === keyCombination) {
found = true;
return false;
}
if (keyPressEvent.which === keyCombination.which) {
var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,
shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,
ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;
if (alt && shift && ctrl) {
found = true;
return false;
}
}
});
return found;
}
})(window.jQuery); })(window.jQuery);