Jakie wartości mogą pojawić się w atrybucie "selected" tagu "option"?
Mam jakieś znaczniki podobne do poniższych:
<select>
<option selected="selected">Apple</option>
<option selected="">Orange</option>
</select>
W tym przypadku, "pomarańczowy" pokazuje jako zaznaczony element. Spodziewałem się, że uczynienie atrybutu pustego selected
cofnie jego efekty. Czy istnieje sposób, aby to napisać bez pomijania atrybutu?
8 answers
Inna przeglądarka może traktować ten atrybut inaczej. Zgodnie z dokumentacją MSDN (dla Internet Explorera):
Aby wybrać element w HTML, nie jest niezbędne do ustawienia wartości Wybrany atrybut to true. Mere obecność wybranego zestawu atrybutów jego wartość jest prawdziwa.
W Firefoksie i Safari to działa:
<option selected='false' />
Z tego co mogę powiedzieć patrząc na oficjalny standard WC3 dla HTML4, obsługiwany przypadek jest tylko:
<option selected='selected' />
Będziesz musiał albo wybiórczo emitować atrybut, albo użyć javascript, aby kontrolować, który element jest początkowo wybrany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:26:47
HTML5 spec
Https://www.w3.org/TR/html51/sec-forms.html#the-option-element
Zaznaczony atrybut content jest atrybutem logicznym.
Http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
Obecność atrybutu boolean na elemencie reprezentuje wartość true, a brak atrybutu reprezentuje wartość false.
Jeśli atrybut jest obecny, jego wartość musi jest to pusty łańcuch lub wartość, która jest niewrażliwa na wielkość liter w ASCII dla kanonicznej nazwy atrybutu, bez początkowych lub końcowych białych znaków.
Wniosek
Następujące są poprawne, równoważne i prawdziwe :
<option selected />
<option selected="" />
<option selected="selected" />
<option selected="SeLeCtEd" />
Następujące są nieprawidłowe :
<option selected="0" />
<option selected="1" />
<option selected="false" />
<option selected="true" />
Brak atrybutu jest jedyną poprawną składnią false :
<option />
Zalecenie
Jeśli zależy ci na pisaniu poprawnego XHTML, użyj selected="selected"
, ponieważ {[4] } jest niepoprawne, a inne alternatywy są mniej czytelne. W przeciwnym razie użyj <option selected>
, ponieważ jest krótszy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
Jedyną dozwoloną wartością dla wybranego atrybutu w XHTML jest " selected ", więc jeśli chcesz, aby znaczniki były zgodne z XHTML i działały we wszystkich przeglądarkach, pozostawienie go jest jedynym wyborem, aby uczynić go niezaznaczonym
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:27:35
Nie, istnienie wybranego atrybutu informuje przeglądarkę, że jest to wybrany element. Wszystko w cudzysłowach jest ignorowane.
Edit: co można zrobić (z Javascript) to szukać znaczników opcji za pomocą selected= "" i usunąć z nich wybrany atrybut.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:24:02
W HTML (w przeciwieństwie do XHTML) prosty atrybut selected
, bez żadnej wartości, działa dobrze:
<option selected>Apple</option>
<option>Orange</option>
W XHTML (w tym XHTML5) potrzebujesz wartości, która powinna być również selected
:
<option selected="selected">Apple</option>
<option>Orange</option>
To również działa dobrze w HTML.
Jest to zazwyczaj przypadek wartości logicznych w (X) HTML. Sposobem, aby ustawić je na fałszywe, jest całkowite ich pominięcie. Ustawienie wartości true
i false
może działać, ale jest niestandardowe.
Zauważ, że dla listy opcji pierwsza jest wybierana przez domyślne, więc w tym przypadku nie jest to wcale konieczne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-08 17:40:27
Zgodnie z w3schools , powinieneś ustawić go jako: selected= "selected". Podpowie Ci, która opcja jest początkowo wybrana, i pozwala ustawić ją za pomocą skryptu później.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:25:25
Nie ma innych ważnych wartości innych niż "selected" dla tego atrybutu. ( http://www.w3schools.com/TAGS/att_option_selected.asp )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:27:10
Lepiej ustawić selectElement.właściwość selectedIndex z Javascript lub całkowite usunięcie atrybutu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-23 17:26:20