Firefox игнорирует выбранную опцию = "selected"

Если вы измените раскрывающийся список и обновите страницу, Firefox, похоже, проигнорирует выбранный атрибут.

<option selected="selected" value="Test">Test</option>

Фактически будет выбран вариант, который вы предварительно выбрали (перед обновлением). Это становится проблемой для меня, так как в раскрывающемся списке происходит событие, которое меняет другие вещи. Есть ли способ заставить firefox остановить это поведение (кроме того, что он запускает другое событие при загрузке страницы)?

Ответ 1

AFAIK, это поведение жестко закодировано в Firefox.

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

Ответ 2

Добавить autocomplete="off" атрибут HTML для каждого выбранного тега. (источник: fooobar.com/questions/73326/...)

Это исправляет поведение ODD в FireFox.

Ответ 3

В firefox я заметил, что атрибут "selected" не будет работать, если вы не поместите выбор внутри формы, где форма имеет атрибут имени.

Ответ 4

Просто у меня была такая же проблема, поверьте мне, что прошло более 10 часов с этим глупым поведением Firefox, у меня есть 7 выпадающих меню, каждый из которых вызовет событие и заполнит 24 скрытых входа, так что вы можете себе представить, опция выбрана с 24 неправильными входными значениями!!! решение, которое я наконец нашел, - это reset форма с Javascript, добавляющим эту строку кода:

window.onload = function() { document.forms['MarkerForm'].reset(); };

PS: входы имеют значения, вытащенные из базы данных, поэтому сброс формы не пустит никакого значения, но в некотором смысле говорит firefox возвращаться к выбранному = выбранный вариант!

Ответ 6

Я использую FF 25.0.1

Он игнорирует selected="" и selected="selected".

Но если я просто попробую selected, опция будет выбрана.

Странное (несоответствующее) поведение. Я знаю, что selected является допустимым HTML5, и это кратчайшая форма, но я обычно пишу код, который также проверяет как хорошо сформированный XML, так что я могу использовать любой инструмент проверки XML, чтобы проверить мои результаты очень строгим способом (и обмен данными очень легко...)

Согласно W3C, эти варианты должны быть действительны для логических атрибутов:

HTML5:  boolAttr="" | boolAttr="boolAttr" | boolAttr
XHTML5: boolAttr="" | boolAttr="boolAttr"

Я предпочитаю первый, так как он почти такой же короткий, как последний (а не xml-совместимый) вариант, но должен проверяться как как XHTML5, так и HTML5. Поэтому я надеюсь, что Mozilla исправит это!

Ответ 7

используйте .prop() вместо .attr()

This does not work in firefox.
  $( 'option[value="myVal"]' ).attr( 'selected', 'selected' );
use this one
  $( 'option[value="myVal"]' ).prop( 'selected', 'selected' );

In other way
  $( this ).prop( 'selected', 'selected' );

Ответ 8

Вы можете вызвать .reset() в форме перед обновлением страницы.

Ответ 9

С лучшим именем = →

form id="UMForm" name="UMForm" class="form"

При выборе выберите выбранный атрибут

Ответ 10

Это может быть ошибка в mozilla, но попробуйте указать выпадающее имя.

Ответ 11

заключить в атрибут формы выбор, и он будет работать.

<!-- will not work in firefox -->
<option selected="selected" value="Test">Test</option>

и

<!-- this will work in firefox -->
<form>
 <option selected="selected" value="Test">Test</option>
</form>

Ответ 12

автозаполнение тоже не работало для меня.

Это исправление javscript, написанное в jquery, которое я использую:

$('input[type="radio"][selected]').click();

Ответ 13

Чтобы отобразить первый элемент раскрывающегося списка, используйте ProjectName.ClearSelection();

Поместите строки на странице дизайна на все браузеры, а также поместите код на странице на странице.

$(document).ready(function () {
    $("#content_ProjectName option[value='1']").prop("selected", true);
});

Ответ 14

<option selected="selected" value="Test">Test</option>

В этом случае это работало как для Chrome, так и для Firefox.

$('option[value="Test"]').prop('selected', true);

Я использовал .attr() вместо .prop()

Ответ 15

Попробуйте отключить атрибут autocomplete для выбора ввода... иногда браузер игнорирует select из-за этого

Ответ 16

Ни для autocomplete="off", ни для размещения внутри form не работает.

Что работал должен был использовать только выбранный атрибут без значения, как это:

<option @(Model.Source == TermSource.Instagram ? "selected" : "")>
    Instagram
</option>
<option @(Model.Source == TermSource.Facebook ? "selected" : "")>
    Facebook
</option>

либо он отображает <option selected>...</option>, либо просто <option>...</option>

Ответ 17

Если вы измените выбор и обновите страницу, то firefox восстановит ваши изменения в форме, поэтому вы чувствуете, что выбор не работает. Вместо обновления, попробуйте открыть ссылку на новой вкладке.

Ответ 18

Это мое решение:

var select = document.getElementById('my_select');
for(var i=0; i < select.options.length; i++){
    select.options[i].selected = select.options[i].attributes.selected != undefined;
}

Я просто положил это вверху страницы (с соответствующим набором идентификаторов), и он работает для меня. Заменяя getElementById на цикл над всеми выделениями на странице, я оставляю в качестве упражнения для читателя;).

Ответ 19

Для меня ни один из вышеперечисленных решений не работал. Я должен был явно задать выбор, если ни один не был установлен:

if (foo.find(':selected').length === 0) {
    $(foo.find('option')[0]).attr('selected', 'selected');
}

Я хочу, чтобы firefox исправил это: (

Ответ 20

На работе я просто исправил ошибку, в которой опция выбора окна отображается правильно в Chrome, но не в Firefox, на той же веб-странице. Это оказалось чем-то совершенно иным, чем проблемы выше, но может быть проблемой, с которой вы сталкиваетесь.

В Chrome цвет шрифта выбора был черным. По какой-то причине в Firefox поле выбора унаследовало цвет шрифта из контейнера, который был белым. Как только я добавил правило CSS, чтобы заставить черный шрифт выбрать цвет шрифта, значение было правильно отображено.