[HTML][JS] Odświeżanie strony a zaznaczone wartości 'select'

0

Witam

Na mojej stronie znajduje się kilka <select>ów z różnymi opcjami do wyboru. Po zaznaczeniu jednej z nich zmienia się treść strony (JS). Jednak po odświeżeniu strony cala treść zostaje zresetowana - nastepuje powrót do tej treści defaultowej.

I wszystko byloby dobrze gdyby nie to ,że po odświeżeniu strony elementy select mają pozaznaczane opcje, zaznaczone przed odświeżeniem, a nie te defaultowe. To wprowadza usera w błąd - widzi on defaultową treść a według select-a jest to treść już zmieniona.

Myślałem o zresetowaniu wszystkich selectów w JS podczas ładowania strony, ale nie bardzo wiem jak sie do tego zabrać. Nie znalazłem elementu onchecked w specyfikacji elementu select.

0

onchange, chociaz nie wiem po co Ci to

0

Nie rozumiemy się.

    <select name="name" onChange="f1()">
	<option>Defaultowa treść</option>
        <option>Inna treść</option>
    </select>

I załóżmy taki scenariusz:
1)user wchodzi na stronę i zaznacza opcję "inna treść"
2)inna tresc zostaje zaladowana (w tle)
3)użytkownik naciska sobie F5, strona sie odświeża
4)strona ładuje sie od nowa a więc treść zostaje zresetowana - widzi on teraz Defaultową treść, tak jak na początku
5)niestety kiedy user spojrzy na selekta zobaczy zaznaczoną opcję "inna treść" (zaznaczył ją wcześniej, przed odświeżeniem) i pomysli że jest nadal ta inna treść - zostaje wprowadzony w bład

Pisząc kod myślałem że przeglądarka zresetuje wszystkie selecty po odświeżeniu. Tak się jednak nie stało.. Tak więc jak mogę za pomocą JS zresetować selecty?

0
<select id="select" name="name" onChange="f1()">
     <option>Defaultowa treść</option>
     <option>Inna treść</option>
</select>

<script type="text/javascript" >
     document.getElementById('select')[0].selected='selected';
</script>

@down lepiej ?

0

@mwili:
Pliiz, nie wklejajmy to ewidentnie złego kodu! Po co tam to language="JavaScript"? To nie jest przeoczenie, to nie jest olanie czegoś, na czym zależałoby tylko purystom. To jest dodanie bezsensownego, zupełnie niepotrzebnego atrybutu, który dodatkowo jest też nieprawidłowy w aktualnej i następnej wersji języka HTML. Po co wstawiać kod, który NIC nie robi, a tylko powoduje błąd walidacji, zwiększa i zaśmieca kod HTML? Atrybut type jest OK (i wymagany w aktualnej wersji HTML-a), atrybut language nie jest OK.

0

@up
language="JavaScript" wyplul mi sam generator i nie zwracalem nawet na to uwagi czy jest to potrzebne czy nie, bo nie bylo to tematem watku. Ty za to naprodukowales przez to trzy linijki tekstu (na moim monitorze), ktore sa zbedne z mojego punktu widzenia. I tak na przyszlos oddzielaj w swoich wypowidziach "moim zdaniem (nie) powinno sie" a "to (nie) jest dozwolone " bo mozesz dac do zrozumienia innym ze te pierwsze jest drugim ;)

@down ty znowu sie rozpisujesz!, fakt jest ze usunalem ten atrybut i go NIE MA, bo jest przestarzaly i zly. W sumie ta subiektywnosc nie tyczyla sie tego stwierdzenia tylko ogolnie do twoich wypowiedzi.

0

@mwili:
Nie wiem co tu jest do oddzielenia. Skoro atrybut ten nie jest prawidłowym atrybutem w aktualnej i następnej wersji HTML-a, to jego stosowanie jest niedozwolone.

A "moim zdaniem"... Nie widzę tam miejsca na taki disclaimer. To fakty (z definicji: obiektywne, nie subiektywne): language nic nie robi, zajmuje tylko miejsce. Najbardziej subiektywne jest określenie zaśmiecania kodu, ale w tym miejscu nie widzę możliwości by jakikolwiek punkt widzenia uważał inaczej. Duplikowanie kodu (z jednej strony atrybut type, z drugiej language) przeczy zasadzie DRY, którą uznaję za zasadę uniwersalną i obiektywną. Dodatkowo, language jest praktycznie martwym, bo jest olewany przez przeglądarki (a nawet gdyby informacje o typie uzytego języka skryptowego były potrzebne, to przeglądarka skorzystałaby z type). Martwy, powtórzony kod zaśmieca. Jeśli potrafisz zaprezentować jakiś rozsądny (!) punkt widzenia sprzeczny z tym zdaniem, to zamieniam się w słuch. Jeśli nie, to ostrzeganie o subiektywności tego stwierdzenia jest zbędne.

Nie obchodzi mnie, czy z Twojego punktu widzenia te trzy linijki są zbędne, czy nie (btw. mamy chyba podobną rozdziałkę ;) ). To forum techniczne, programistyczne. Tu wręcz wypada dbać o jakość kodu i ostrzegać ludzi przed błędami. Twój kod -- wydalony przez generator, czy nie -- pozostanie tu na miliony lat i może wprowadzić w błąd developerów. Nie wspomnę o tym, że wielu ludzi po prostu kopiuje i wkleja fragmenty kodu. Nieprofesjonalne? Tak. Ale to, że oni są nieprofesjonalni nie oznacza, że my nie możemy być.

Toteż sprostowałem (to głównie dla innych czytelników, skoro Ty wiesz że atrybut language śmierdzi) i zaapelowałem o większą staranność (to do Ciebie, żebyś rozważył sprawdzenie swojego kodu przed wklejeniem).

0

OK chłopaki, luzik :P

Wszystko śmiga, dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1