forked from e621ng/e621ng
proper fix for #1758; keep caret position after using autocomplete
This commit is contained in:
parent
f4706aa3be
commit
c8d070e602
@ -51,17 +51,26 @@
|
||||
return false;
|
||||
},
|
||||
select: function(event, ui) {
|
||||
this.value = this.value.replace(/\S+\s*$/g, ui.item.value + " ");
|
||||
var before_caret_text = this.value.substring(0, this.selectionStart);
|
||||
var after_caret_text = this.value.substring(this.selectionStart);
|
||||
|
||||
this.value = before_caret_text.replace(/\S+\s*$/g, ui.item.value + " ");
|
||||
|
||||
// Preserve original caret position to prevent it from jumping to the end
|
||||
var original_start = this.selectionStart;
|
||||
this.value += after_caret_text;
|
||||
this.selectionStart = this.selectionEnd = original_start;
|
||||
|
||||
return false;
|
||||
},
|
||||
source: function(req, resp) {
|
||||
var pre_caret_text = req.term.substring(0, this.element.get(0).selectionStart);
|
||||
var before_caret_text = req.term.substring(0, this.element.get(0).selectionStart);
|
||||
|
||||
if (pre_caret_text.match(/ $/)) {
|
||||
if (before_caret_text.match(/ $/)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var term = pre_caret_text.match(/\S+/g).pop();
|
||||
var term = before_caret_text.match(/\S+/g).pop();
|
||||
$.ajax({
|
||||
url: "/tags.json",
|
||||
data: {
|
||||
|
Loading…
Reference in New Issue
Block a user