Изменение input в зависимости от другого input (с использованием bootstrap typehead)
Приветствую.
Очередной вопрос с которым бьюсь весь день.. Итак, подключены: jQuery 10.1.1, Bootstrap 3.0.3, Bootstrap 3 Typehead (https://github.com/bassjobsen/Bootstrap-3-Typeahead). Необходимо: при выборе страны выводить (с помощью Typeahead) только те города, которые к этой стране относятся (т.е. переключать "словарь" Typeahead). Пробовал сделать вот так... HTML: <input type="text" class="form-control" id="inputUserEditCountry" placeholder="Страна" value="" data-provide="typeahead" /> <input type="text" class="form-control" id="inputUserEditCity" placeholder="Город" value="" data-provide="typeahead" /> jQuery:
...
...
// Typehead inputUserEditCountry
$('#inputUserEditCountry').typeahead({
source: ['Россия','Украина','Белоруссия']
});
// Typehead inputUserEditType
$('#inputUserEditCountry').change(function() {
$('#inputUserEditCity').val('');
if ($('#inputUserEditCountry').val() === 'Россия') {
$('#inputUserEditCity').typeahead({
source: ['Москва','Санкт-Петербург','Екатеринбург']
});
}
else if ($('#inputUserEditCountry').val() === 'Украина') {
$('#inputUserEditCity').typeahead({
source: ['Киев','Харьков','Донецк']
});
}
else if ($('#inputUserEditCountry').val() === 'Белоруссия') {
$('#inputUserEditCity').typeahead({
source: ['Минск','Брест','Гродно']
});
}
});
...
...
НО: при повторном выборе - остаётся старое значение. Иными словами, если выбрать "Россия"->"Москва", а потом выбрать "Украина", то значение городов будут соответствовать "России". Помогите пожалуйста... :help: |
Уфф.. Вопрос решился довольно просто и банально :D
Нужно было всего лишь добавить вот это:
...
...
$('#inputUserEditCountry').change(function() {
...
$('#inputUserEditCity').typeahead('destroy');
...
...
Спасибо за внимание, может быть кому-то это тоже поможет! |
Теперь столкнулся с другой проблемой: не работает выбор города в FireFox 25+ если выводить список из файла через $.getJSON(). Ошибок в консоле нет, так что даже не знаю куда копать.. В остальных броузерах (Chrome 32+, Opera 18+, IE 9+) - всё работает нормально.
Интересно, что если кликнуть мышкой на предлагаемом варианте страны (после ввода нескольких букв и/или полностью названия страны), то всё отрабатывается на ура! Т.е. ().change для этих броузеров отрабатывается только когда было совершено действие мышкой, а не с клавиатуры. Странно как-то.. Кто-нибудь сталкивался с подобной проблемой? Может быть сам алгоритм (в коде выше) не верный?.. UPD: Запостил issue разработчику https://github.com/bassjobsen/Bootst...head/issues/19 (включая код) посмотрим, что ответит. |
| Часовой пояс GMT +3, время: 04:34. |