Ответ 1
AFAIK, это поведение жестко закодировано в Firefox.
Вы можете попробовать настроить каждый элемент формы на defaultValue
на загрузку страницы.
Если вы измените раскрывающийся список и обновите страницу, Firefox, похоже, проигнорирует выбранный атрибут.
<option selected="selected" value="Test">Test</option>
Фактически будет выбран вариант, который вы предварительно выбрали (перед обновлением). Это становится проблемой для меня, так как в раскрывающемся списке происходит событие, которое меняет другие вещи. Есть ли способ заставить firefox остановить это поведение (кроме того, что он запускает другое событие при загрузке страницы)?
AFAIK, это поведение жестко закодировано в Firefox.
Вы можете попробовать настроить каждый элемент формы на defaultValue
на загрузку страницы.
Добавить autocomplete="off"
атрибут HTML для каждого выбранного тега. (источник: fooobar.com/questions/73326/...)
Это исправляет поведение ODD в FireFox.
В firefox я заметил, что атрибут "selected" не будет работать, если вы не поместите выбор внутри формы, где форма имеет атрибут имени.
Просто у меня была такая же проблема, поверьте мне, что прошло более 10 часов с этим глупым поведением Firefox, у меня есть 7 выпадающих меню, каждый из которых вызовет событие и заполнит 24 скрытых входа, так что вы можете себе представить, опция выбрана с 24 неправильными входными значениями!!! решение, которое я наконец нашел, - это reset форма с Javascript, добавляющим эту строку кода:
window.onload = function() { document.forms['MarkerForm'].reset(); };
PS: входы имеют значения, вытащенные из базы данных, поэтому сброс формы не пустит никакого значения, но в некотором смысле говорит firefox возвращаться к выбранному = выбранный вариант!
Это просто Firefox, запоминающий ваш предыдущий выбор при освежении. Вместо этого попробуйте жесткое обновление.
Кроме того, такая же проблема здесь: fooobar.com/questions/73326/...
Также см. здесь: https://bugzilla.mozilla.org/show_bug.cgi?id=274795
Я использую 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 исправит это!
используйте .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' );
Вы можете вызвать .reset()
в форме перед обновлением страницы.
С лучшим именем = →
form id="UMForm" name="UMForm" class="form"
При выборе выберите выбранный атрибут
Это может быть ошибка в mozilla, но попробуйте указать выпадающее имя.
заключить в атрибут формы выбор, и он будет работать.
<!-- 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>
автозаполнение тоже не работало для меня.
Это исправление javscript, написанное в jquery, которое я использую:
$('input[type="radio"][selected]').click();
Чтобы отобразить первый элемент раскрывающегося списка, используйте ProjectName.ClearSelection();
Поместите строки на странице дизайна на все браузеры, а также поместите код на странице на странице.
$(document).ready(function () {
$("#content_ProjectName option[value='1']").prop("selected", true);
});
<option selected="selected" value="Test">Test</option>
В этом случае это работало как для Chrome, так и для Firefox.
$('option[value="Test"]').prop('selected', true);
Я использовал .attr()
вместо .prop()
Попробуйте отключить атрибут autocomplete
для выбора ввода... иногда браузер игнорирует select
из-за этого
Ни для autocomplete="off"
, ни для размещения внутри form
не работает.
Что работал должен был использовать только выбранный атрибут без значения, как это:
<option @(Model.Source == TermSource.Instagram ? "selected" : "")>
Instagram
</option>
<option @(Model.Source == TermSource.Facebook ? "selected" : "")>
Facebook
</option>
либо он отображает <option selected>...</option>
, либо просто <option>...</option>
Если вы измените выбор и обновите страницу, то firefox восстановит ваши изменения в форме, поэтому вы чувствуете, что выбор не работает. Вместо обновления, попробуйте открыть ссылку на новой вкладке.
Это мое решение:
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 на цикл над всеми выделениями на странице, я оставляю в качестве упражнения для читателя;).
Для меня ни один из вышеперечисленных решений не работал. Я должен был явно задать выбор, если ни один не был установлен:
if (foo.find(':selected').length === 0) {
$(foo.find('option')[0]).attr('selected', 'selected');
}
Я хочу, чтобы firefox исправил это: (
На работе я просто исправил ошибку, в которой опция выбора окна отображается правильно в Chrome, но не в Firefox, на той же веб-странице. Это оказалось чем-то совершенно иным, чем проблемы выше, но может быть проблемой, с которой вы сталкиваетесь.
В Chrome цвет шрифта выбора был черным. По какой-то причине в Firefox поле выбора унаследовало цвет шрифта из контейнера, который был белым. Как только я добавил правило CSS, чтобы заставить черный шрифт выбрать цвет шрифта, значение было правильно отображено.