Предотвращение onblur при выборе предложения от автозаполнения Devbridge - PullRequest
0 голосов
/ 05 июня 2018

Я использую плагин DevQridge для автозаполнения jQuery и довольно озадачен тем, как предотвратить размытие при выборе предложения.Я не силен в способах JavaScript, поэтому я надеюсь, что кто-то может указать мне, где я ошибся.

Вот настройки:

HTML-код города (в соответствии с ASP.net MVC):

<div class="col-lg-12">
  <div class="form-group">
    <label for="EntryViewModel_City">City</label> <span class="pull-right"><label class="label-danger" id="EntryViewModel_CityValidation"></label> <label for="EntryViewModel_VariousCities">Various Cities</label> <input class="checkbox-inline" data-val="true" data-val-required="The Various Cities field is required." id="EntryViewModel_VariousCities" name="EntryViewModel.VariousCities" onchange="disableField(this,EntryViewModel_City)" type="checkbox" value="true" /><input name="EntryViewModel.VariousCities" type="hidden" value="false" /></span>
    <textarea class="form-control uppercase-text text-box multi-line" id="EntryViewModel_City" name="EntryViewModel.City" onblur="validateLocation(this,EntryViewModel_County)" onkeyup="validateDuplicateValues(this)">PORTLAND</textarea>
  </div>
</div>

Настройка автозаполнения(вызывается из $ (document) .ready ()):

$('#EntryViewModel_City').devbridgeAutocomplete({
    lookup: cityList,
    lookupFilter: function (suggestion, query, queryLowerCase) {
            return $('#EntryViewModel_City').val().split(',').indexOf(suggestion.value) === -1;
    },
    delimiter: ',',
    //serviceUrl: citiesUrl, //service not available from internet. Use array instead.
    minChars: 2,
    noCache: false,
    showNoSuggestionNotice: true,
    tabDisabled: false,
    onSelect: function(suggestion) {
      this.value = this.value + ",";
  },
});

Проблема:

Поле «Мои города» может содержать несколько записей, разделенныхзапятые.Пользователь должен иметь возможность выбрать любое количество городов, и только после того, как пользователь покинет города <textarea>, должно произойти событие размытия, чтобы проверить все города в списке.Однако, если ввести «es», а затем выбрать предложение с помощью мыши, отобразится сообщение о том, что «es» является недопустимым городом, указывая на то, что <textarea> не обновляется до срабатывания onblur.Использование клавиш со стрелками не вызывает этой проблемы.

Итак, как бы я запретил запуск onblur до тех пор, пока пользователь намеренно не покинет города <textarea>.

См. «Плункер» здесь: https://plnkr.co/edit/DnJ31mq40nlXrGPtMppu?p=preview

Спасибо заранее за любую помощь с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...