Я уже довольно давно искал ответ на этот вопрос, но безуспешно или с ошибками на максимальном уровне. . Затем мне нужно снова выбрать пункт 1.
Эта функция чрезвычайно важна для успеха проекта, над которым я работаю.
Любая помощь приветствуется.
Изменить: (Подробнее )
Эта функция необходима, так как я работаю над проектом с картами Google, где пользователям предоставляется раскрывающийся список для быстрого перехода к стране (например, вы выбираете "Испания" в раскрывающемся списке, Google Maps устанавливает испанию в качестве вашего представления.
проблема возникает, когда вы хотите поехать в Испанию, затем перетащите карту и в конечном итоге окажетесь в Италии. Теперь вы хотите вернуться в Испанию, но вы не можете выбрать его из раскрывающегося списка, пока не выберете что-то другое. Моему боссу это не нравится :)
Edit2: Решение
Итак, теперь есть несколько решений. Один из них - активировать действие при размытии (при расфокусировке элемента управления), это может работать, так как я могу размыть список при изменении, но все же для людей, снова выбирающих тот же элемент, триггер размытия элемента управления не будет идут, и если они сами не переключат фокус, они не увидят изменений на карте.
Я все еще не могу понять, почему должно быть так сложно найти какое-то событие, которое запускается при выборе опции / щелчке / размытии или чем-то еще ... Я продолжаю поиски и загляну сюда чуть позже.
Редактировать 3: Окончательное решение
Правильно, так что мне наконец удалось заставить это работать, не совсем так, как должно было быть, но достаточно близко, по крайней мере, на данный момент в любом случае.
Решение, которое я придумал, заключалось в том, чтобы добавить опцию «Пожалуйста, выберите страну» в верхней части выбора. Затем при изменении я бы изменил текст и значение «Пожалуйста, выберите страну» на значение выбранного элемента и сбросил selectedindex на 0. Таким образом, при выборе, скажем, Испании, он будет вверху списка в отключенном состоянии и далее вниз в рабочем состоянии. так что теперь вы можете щелкнуть spain в середине списка, чтобы вернуться в spain, даже если он все еще выбран (верхний элемент)
Довольно аккуратно, идея была предоставлена коллегой.
сценарий выглядит следующим образом:
var dummyOption;
function setdummyCountry(obj)
{
var selectedOption = obj.options[obj.selectedIndex];
if (dummyOption != null) {
dummyOption.text = selectedOption.text;
dummyOption.value = selectedOption.value;
}
else {
dummyOption = document.createElement("option");
dummyOption.text = selectedOption.text;
dummyOption.value = selectedOption.value;
dummyOption.setAttribute("disabled", "true");
obj.options[0] = dummyOption;
}
obj.selectedIndex = 0;
}
<select onchange="setdummyCountry(this);">
<option value="">Please select country</option>
<option value="ES">spain</option>
<option value="SE">sweden</option>
<option value="NO">norway</option>
</select>
Надеюсь, это кому-то поможет!
А тем, кто пытался мне помочь, спасибо за ваши идеи и время.