Jeśli zmienisz listę rozwijaną i odświeżysz stronę, Firefox wydaje się ignorować wybrany atrybut.
<option selected="selected" value="Test">Test</option>
W rzeczywistości wybierze opcję, którą wcześniej wybrałeś (przed odświeżeniem). To kończy się dla mnie problemem, ponieważ w menu jest wyzwalane zdarzenie, które zmienia inne rzeczy. Czy istnieje sposób, aby Firefox zatrzymał to zachowanie (inny niż wywołanie innego zdarzenia podczas ładowania strony)?
firefox
drop-down-menu
refresh
klucz do małpy
źródło
źródło
$('option:selected').each(function(){ $(this).prop('selected',true); });
Odpowiedzi:
AFAIK, to zachowanie jest na stałe zakodowane w Firefoksie.
Możesz spróbować ustawić każdy element formularza na jego
defaultValue
ładowanie podczas ładowania strony.źródło
$(":input").val(this[0].defaultValue);
(nieprzetestowane); w normalnym JS, przejdź przez każdydocument.getElementsByTagname("select")
Dodaj
autocomplete="off"
atrybut HTML do każdego zaznaczonego tagu. (źródło: https://stackoverflow.com/a/8258154/260080 )Naprawia to zachowanie ODD w FireFox.
źródło
W Firefoksie zauważyłem, że atrybut „selected” nie będzie działał, dopóki nie umieścisz zaznaczenia wewnątrz formularza, gdzie formularz ma atrybut nazwy.
źródło
Po prostu miałem ten sam problem, uwierz mi, że minęło ponad 10 godzin zmagania się z tym głupim zachowaniem Firefoksa, mam 7 rozwijanych menu, każdy z nich wyzwoli zdarzenie i wypełni 24 ukryte dane wejściowe, więc możesz sobie wyobrazić wybranie odpowiedniej opcji 24 błędne wartości wejściowe !!! rozwiązaniem, które w końcu znalazłem, jest zresetowanie formularza za pomocą JavaScript, dodając następujący wiersz kodu:
PS: dane wejściowe mają wartości pobrane z bazy danych, więc zresetowanie formularza nie powoduje opróżnienia żadnej wartości, ale w pewnym sensie nakazuje firefoxowi wrócić do diabła do opcji selected = selected!
źródło
Po prostu Firefox zapamiętuje twój poprzedni wybór podczas odświeżania. Zamiast tego spróbuj twardego odświeżenia.
Również ten sam problem tutaj: https://stackoverflow.com/a/1505693/1069232
Zobacz także tutaj: https://bugzilla.mozilla.org/show_bug.cgi?id=274795
źródło
Spróbuj wyłączyć
autocomplete
atrybut wyboru wejścia ... czasami przeglądarka ignorujeselect
z tego powoduźródło
Używam FF 25.0.1
Ignoruje
selected=""
iselected="selected"
.Ale jeśli po prostu spróbuję,
selected
opcja jest zaznaczona.Dziwne (niezgodne) zachowanie. Wiem, że
selected
jest to poprawny HTML5 i jest to najkrótsza forma, ale zwykle piszę kod, który również waliduje, podobnie jak dobrze sformatowany XML, więc mogę użyć dowolnego narzędzia walidacji XML, aby sprawdzić moje wyniki w bardzo ścisły sposób (a wymiana danych jest bardzo łatwa. .)Według W3C te warianty powinny obowiązywać dla atrybutów logicznych:
Wolę pierwszy, ponieważ jest prawie tak krótki, jak ostatni (niezgodny z XML) wariant, ale powinien sprawdzać się zarówno jako XHTML5, jak i HTML5. Mam więc nadzieję, że Mozilla to naprawi!
źródło
użyj .prop () zamiast .attr ()
źródło
.prop('selected', true);
lub.prop('selected', false);
(jQuery) do włączania / wyłączania działa zarówno w przeglądarce Firefox, jak i Chrome.Możesz wywołać
.reset()
formularz przed odświeżeniem strony.źródło
ująć wybierz w atrybut formularza i zadziała.
i
źródło
Z nazwą jest lepiej = >>
Zaznaczenie przyjmie wybrany atrybut
źródło
Może to błąd w Mozilli, ale spróbuj nadać liście rozwijanej nazwę.
źródło
autouzupełnianie też nie działało.
Oto poprawka javscript napisana w jQuery, której używam:
źródło
W tym przypadku działało to zarówno w przeglądarce Chrome, jak i Firefox.
Używałem
.attr()
zamiast.prop()
źródło
Aby wyświetlić pierwszą pozycję z menu, użyj
ProjectName.ClearSelection();
Umieść linie na swojej stronie projektu, aby działały we wszystkich przeglądarkach. Umieść to również w kodzie za ładowaniem strony.
źródło
Jeśli zmienisz zaznaczenie i odświeżysz stronę, firefox przywróci zmiany w formularzu, dlatego masz wrażenie, że zaznaczanie nie działa. Zamiast odświeżać, spróbuj otworzyć link w nowej karcie.
źródło
To jest moje rozwiązanie:
Po prostu umieściłem to na górze strony (z odpowiednim ustawionym identyfikatorem) i to działa. Zastąpienie getElementById pętlą nad wszystkimi zaznaczeniami na stronie zostawiam jako ćwiczenie dla czytelnika;).
źródło
U mnie żadne z powyższych rozwiązań nie zadziałało. Musiałem wyraźnie ustawić wybór, jeśli żaden nie został ustawiony:
Chciałbym, żeby Firefox to naprawił :(
źródło
W pracy właśnie naprawiłem błąd polegający na tym, że opcja zaznaczania pola wyświetlała się poprawnie w przeglądarce Chrome, ale nie w przeglądarce Firefox na tej samej stronie internetowej. Okazało się, że to coś zupełnie innego niż powyższe problemy, ale może to być problem, którego doświadczasz.
W przeglądarce Chrome kolor czcionki w polu wyboru był czarny. Z jakiegoś powodu w przeglądarce Firefox pole wyboru odziedziczyło kolor czcionki z kontenera, który był biały. Gdy dodałem regułę CSS, aby wymusić, że kolor czcionki w polu wyboru będzie czarny, zestaw wartości był poprawnie wyświetlany.
źródło
Ani
autocomplete="off"
umieszczenie go w środku, nieform
działa dla mnie.Co pracował było użyć tylko wybranego atrybutu bez „wartości” jak poniżej:
więc albo renderuje
<option selected>...</option>
, albo po prostu<option>...</option>
źródło