Выберите уже выбранный элемент в раскрывающемся списке / списке выбора

Я уже довольно давно искал ответ на этот вопрос, но безуспешно или с ошибками на максимальном уровне. . Затем мне нужно снова выбрать пункт 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>

Надеюсь, это кому-то поможет!

А тем, кто пытался мне помочь, спасибо за ваши идеи и время.

5
задан xzc 12 May 2011 в 11:14
поделиться