Jak mogę sprawdzić, czy użytkownik wybrał coś z <select>
pola w HTML5?
Widzę, <select>
że nie obsługuje nowego required
atrybutu ... czy muszę wtedy używać JavaScript? A może brakuje mi czegoś? : /
javascript
html
select
required
Matt
źródło
źródło
selectedIndex
.Odpowiedzi:
Obowiązkowe : opróżnij pierwszą wartość - wymagane prace na pustych wartościach
Wymagania wstępne : poprawny HTML5 DOCTYPE i nazwane pole wejściowe
Zgodnie z dokumentacją (lista i pogrubienie jest moje)
źródło
<select>
Elementem obsługuje sięrequired
cechę, według specyfikacji:Która przeglądarka tego nie honoruje?
(Oczywiście i tak musisz sprawdzić poprawność na serwerze, ponieważ nie możesz zagwarantować, że użytkownicy będą mieli włączoną obsługę JavaScript).
źródło
Możesz użyć
selected
atrybutu dla elementu opcji, aby wybrać opcję domyślnie. Możesz użyćrequired
atrybutu dla elementu select, aby upewnić się, że użytkownik coś wybierze.W Javascripcie możesz sprawdzić
selectedIndex
właściwość, aby uzyskać indeks wybranej opcji, lub możesz sprawdzićvalue
właściwość, aby uzyskać wartość wybranej opcji.Zgodnie ze specyfikacją HTML5
selectedIndex
„zwraca indeks pierwszego wybranego elementu, jeśli istnieje, lub −1, jeśli nie ma wybranego elementu. Ivalue
” zwraca wartość pierwszego wybranego elementu, jeśli istnieje, lub pusty ciąg znaków, jeśli istnieje brak zaznaczonego elementu. ”Więc jeśli wybranyIndex = -1, to wiesz, że nic nie wybrali.źródło
-1
. Przepraszam, nie wyjaśniłem najpierw w komentarzach.Tak, działa:
musisz pozostawić pierwszą opcję pustą.
źródło
źródło
najpierw musisz przypisać pustą wartość w pierwszej opcji. tj. Wybierz tutaj. tylko wymagane będzie działać.
źródło
Zmień wartość pierwszego elementu pola wyboru na pusty.
Tak więc za każdym razem, gdy publikujesz FORMULARZ, dostajesz pustą wartość i w ten sposób będziesz wiedział, że użytkownik nie wybrał niczego z listy rozwijanej.
źródło
Musisz ustawić
value
atrybutoption
pustego ciągu:select
zwrócivalue
wybraneoption
z serwera, gdy użytkownik naciśniesubmit
przyciskform
. Pustevalue
to to samo, co pustetext
wejście -> podniesienierequired
komunikatu.w3schools
źródło
spróbuj tego, to zadziała, próbowałem tego i działa.
źródło
Działa idealnie dobrze, jeśli wartość pierwszej opcji jest pusta. Objaśnienie: HTML5 odczyta wartość zerową po przesłaniu przycisku. Jeśli nie jest zerowy (atrybut wartości), zakłada się, że wybrana wartość nie jest zerowa, dlatego sprawdzanie poprawności zadziałałoby, tzn. Sprawdzając, czy w znaczniku opcji znajdują się dane. Dlatego nie wygeneruje metody sprawdzania poprawności. Jednak wydaje mi się, że druga strona stanie się jasna, jeśli atrybut wartości jest ustawiony na null tj. (Wartość = „”), HTML5 wykryje pustą wartość przy pierwszej, a raczej domyślnie wybranej opcji, a tym samym wyświetli komunikat o sprawdzeniu poprawności. Dzięki, że pytasz. Chętnie pomoże. Cieszę się, że wiedziałem.
źródło
W HTML5 możesz to zrobić, używając pełnego wyrażenia:
Nie wiem, dlaczego to krótkie wyrażenie nie działa, ale spróbuj tego. Rozwiąże się.
źródło
Spróbuj tego
źródło
Możesz to zrobić również dynamicznie za pomocą JQuery
Zestaw wymagany
Usuń wymagane
źródło