JavaScript: MaskedInput + AutoComplete (паразитный поиск)

211
07 мая 2018, 23:53

На одном поле прицеплен autocomplete и inputmask.

InputMask через атрибут:

<input name="sku" id="sku" data-mask="999 999 999">

Autocomplete через JS

$('#sku').autocomplete({
    minLength: 1,
    source: function(request, response) {
        $.ajax({
            datatype: "json",
            type: 'POST',
            url: '/ajax/sku.php',
            data: { term: request.term },
            success: function (data) {
                $('#sku_name').val('');
                $('#sku_desc').val('');
                var resp = $.map(JSON.parse(data), function (obj) {
                    return {
                        name: obj.name,
                        value: obj.value,
                        desc: obj.desc
                    };
                });
                response(resp);
            }
        });
    },
    select: function(event, ui) {
        $('#sku_name').val(' '+ui.item.name);
        $('#sku_desc').val(' '+ui.item.desc);
    },
    search: function() {
        $(this).parent().addClass('ui-autocomplete-processing');
    },
    open: function() {
        $(this).parent().removeClass('ui-autocomplete-processing');
    }
});

Всё работает. Проблема в следующем: при потере фокуса поля sku - появляется выбор автокомплита из одной строки (со значением, которое в поле). При повторном выборе - всё ок.

Насколько я понимаю - проблема в том, что отрабатывает inputmask, которое обновляет значение поля и autocomplete реагирует на это обновление. Как избежать этого?

READ ALSO
Какую БД выбрать для node.js? [требует правки]

Какую БД выбрать для node.js? [требует правки]

Прохожу курс по js и после него начну изучать nodejs, но уже сейчас хотелось бы понимать, какую лучше всего использовать БД! В интернете пишут,...

219
Angular, нужна помощь с редактированием

Angular, нужна помощь с редактированием

У меня есть 10 элементов, которые я вывожу с помощью ng-repeatПод каждым есть кнопка редактирования

224
Как вернуть String из getComputedStyle?

Как вернуть String из getComputedStyle?

Вопрос, собственно, заключается в названии: как вернуть String из getComputedStyle?

163
директива use strict

директива use strict

Начал изучать javascript, узнал про 'use strict'Написано, что нельзя вернуть назад действия, которые были написаны при use strict

221