Перенаправьте автоматически при выборе объекта из избранного выпадающего списка

в этом выражении index всегда будет неопределенным:

Object.entries(groups).sort().map(([letterKey, brands, index]) => ...

Исправьте свой код следующим образом:

Object.entries(groups).sort().map(([letterKey, brands], index) => ...
12
задан Brad 24 February 2009 в 02:50
поделиться

4 ответа

Вам не нужен предварительно упакованный сценарий для этого, просто пара строк кода.

// get your select element and listen for a change event on it
$('#selectEl').change(function() {
  // set the window's location property to the value of the option the user has selected
  window.location = $(this).val();
});
44
ответ дан 2 December 2019 в 02:52
поделиться

Другие дали хорошие ответы о том, как сделать это, но...

Просто предупреждение, IE обрабатывает список выборки onChange совершенно по-другому по сравнению с другими браузерами, когда кто-то перешел через клавиатуру. Это рассчитывает, каждый ключ/включать вниз нажимают как onChange событие, означая, что Вы не можете переместиться по списку выборки перенаправления через клавиатуру, уничтожив доступность для пользователей, которые не могут использовать мышь. (Другие браузеры ожидают "ввести" события или вкладки из списка выборки, прежде, чем запустить onChange.) я провел долгое, долгое время, пытаясь взломать обходное решение для этого и никогда полностью решил проблему.

Я не знаю, составляет ли jQuery это; надо надеяться, это делает для пользы доступности Вашего сайта.

Может стоить войти в список выборки, выбирают, куда пойти, затем имейте кнопку рядом с ним, на самом деле активируют перенаправление. (Если Вы не заботитесь о доступности пользователей IE.)

18
ответ дан 2 December 2019 в 02:52
поделиться

Простой ответ, как Daniel предполагает, - Вы не должны делать этого, это плохо для удобства использования и доступности.

Поведение списка выборки зависит от комбинации ОС пользователя, Браузера и пользовательских настроек (для обоих). Добавьте к этому то, что onchange событие не реализовано стандартным способом через браузеры.

Пользователи должны смочь ожидать поведение от списка выборки независимо от того, используют ли они мышь, клавиатуру или mousewheel или (речь, screenreader, безотносительно...). При привязке события с onchange, это никогда не должно быть то, которое устраняет фокус пользователя из перенаправления страницы, например, списка выборки.

(Лично я перемещаюсь по формам сайта много клавиатуры использования, и если это происходит, я кричу),

2
ответ дан 2 December 2019 в 02:52
поделиться

Я не протестировал это, но я думаю, что это эквивалентно образцу на странице, на которую Вы сослались.

$(document).ready( function() {
   $('#select').change( function() {
      location.href = $(this).val();
   });
});

<select id="select">
    <option value="#">Select a location</option>
    <option value="location.htm">Location</option>
    <option value="other.htm">Other</option>
</select>
8
ответ дан 2 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: