autocomplete fixes

This commit is contained in:
Yuri Kuznetsov
2022-04-19 22:51:10 +03:00
parent ac505d9875
commit a0819e8cdc
3 changed files with 24 additions and 30 deletions
+4
View File
@@ -234,6 +234,10 @@ define('views/fields/link-multiple', 'views/fields/base', function (Dep) {
var $element = this.$element;
if (!this.autocompleteDisabled) {
this.$element.on('blur', () => {
setTimeout(() => this.$element.autocomplete('clear'), 100);
});
this.$element.autocomplete({
serviceUrl: (q) => {
return this.getAutocompleteUrl(q);
+10 -18
View File
@@ -277,19 +277,17 @@ define('views/fields/link-parent', 'views/fields/base', function (Dep) {
this.trigger('change');
});
if (this.mode === 'edit') {
this.$elementName.on('blur', (e) => {
setTimeout(() => {
if (this.model.has(this.nameName)) {
e.currentTarget.value = this.model.get(this.nameName);
}
this.$elementName.on('blur', e => {
setTimeout(() => {
if (this.mode === 'edit') {
e.currentTarget.value = this.model.get(this.nameName) || '';
}
if (!this.autocompleteDisabled) {
this.$elementName.autocomplete('clear');
}
}, 100);
});
}
if (!this.autocompleteDisabled) {
this.$elementName.autocomplete('clear');
}
}, 100);
});
if (!this.autocompleteDisabled) {
this.$elementName.autocomplete({
@@ -345,12 +343,6 @@ define('views/fields/link-parent', 'views/fields/base', function (Dep) {
var $elementName = this.$elementName;
$elementName.on('change', () => {
if (!this.model.get(this.idName)) {
$elementName.val(this.model.get(this.nameName));
}
});
this.once('render', () => {
$elementName.autocomplete('dispose');
});
+10 -12
View File
@@ -300,19 +300,17 @@ define('views/fields/link', 'views/fields/base', function (Dep) {
}
});
if (this.mode === 'edit') {
this.$elementName.on('blur', (e) => {
setTimeout(() => {
if (this.model.has(this.nameName)) {
e.currentTarget.value = this.model.get(this.nameName);
}
this.$elementName.on('blur', e => {
setTimeout(() => {
if (this.mode === 'edit' && this.model.has(this.nameName)) {
e.currentTarget.value = this.model.get(this.nameName);
}
if (!this.autocompleteDisabled) {
this.$elementName.autocomplete('clear');
}
}, 100);
});
}
if (!this.autocompleteDisabled) {
this.$elementName.autocomplete('clear');
}
}, 100);
});
var $elementName = this.$elementName;