Quali valori possono essere visualizzati in & # 8220; selezionato & # 8221; attributo dell'opzione & # 8220; & # 8221; etichetta?

StackOverflow https://stackoverflow.com/questions/1033944

  •  06-07-2019
  •  | 
  •  

Domanda

Ho un markup simile al seguente:

<select>
  <option selected="selected">Apple</option>
  <option selected="">Orange</option>
</select>

In questo caso, " Orange " viene visualizzato come l'elemento selezionato. Mi sarei aspettato di rendere vuoto l'attributo selezionato per annullarne gli effetti. C'è un modo per scrivere questo senza semplicemente tralasciare l'attributo?

È stato utile?

Soluzione

Browser diversi possono trattare questo attributo in modo diverso. Secondo la documentazione MSDN (per Internet Explorer):

  

Per selezionare un elemento in HTML, non lo è   necessario impostare il valore di   Attributo SELEZIONATO su vero. Il semplice   presenza del set di attributi SELECTED   il suo valore è vero.

In Firefox e Safari questo funziona:

<option selected='false' />

Da quello che posso dire guardando lo standard WC3 ufficiale per HTML4, il caso supportato è solo:

<option selected='selected' />

Dovrai emettere l'attributo in modo selettivo o utilizzare JavaScript per controllare quale elemento è inizialmente selezionato.

Altri suggerimenti

Specifiche HTML5

https://www.w3.org /TR/html51/sec-forms.html#the-option-element

  

L'attributo del contenuto selezionato è un attributo booleano.

http://www.w3.org/TR/html5 /infrastructure.html#boolean-attributes :

  

La presenza di un attributo booleano su un elemento rappresenta il valore vero e l'assenza dell'attributo rappresenta il valore falso.

     

Se l'attributo è presente, il suo valore deve essere una stringa vuota o un valore che corrisponde a una corrispondenza maiuscole / minuscole ASCII per il nome canonico dell'attributo, senza spazi bianchi iniziali o finali.

Conclusione

I seguenti sono validi, equivalenti e veri :

<option selected />
<option selected="" />
<option selected="selected" />
<option selected="SeLeCtEd" />

I seguenti sono non validi :

<option selected="0" />
<option selected="1" />
<option selected="false" />
<option selected="true" />

L'assenza dell'attributo è l'unica sintassi valida per false :

<option />

Raccomandazione

Se ti interessa scrivere XHTML valido, usa selected = " selezionato " , poiché < opzione selezionata > non è valida e altre alternative sono meno leggibili. Altrimenti, usa < opzione selezionata > poiché è più corta.

l'unico valore consentito per l'attributo selezionato in XHTML è " selezionato " quindi se vuoi che il tuo markup sia conforme a XHTML e funzioni su tutti i browser, lasciarlo fuori è l'unica scelta per renderlo non selezionato

No, l'esistenza dell'attributo selezionato indica al browser che è l'elemento selezionato. Qualsiasi cosa tra virgolette viene ignorata.

Modifica: ciò che potresti fare (con Javascript) è cercare i tag di opzione con selezionato = " " e rimuovere da essi l'attributo selezionato.

In HTML (al contrario di XHTML) un semplice attributo selezionato , senza alcun valore, funziona benissimo:

<option selected>Apple</option>
<option>Orange</option>

In XHTML (incluso XHTML5) hai bisogno di un valore, che dovrebbe anche essere selezionato :

<option selected="selected">Apple</option>
<option>Orange</option>

Funziona bene anche in HTML.

Questo è generalmente il caso dei valori booleani in (X) HTML. Il modo di impostarli su false è ometterli del tutto. L'impostazione dei valori di true e false può funzionare, ma non è standard.

Nota che per un elenco di opzioni, la prima è selezionata per impostazione predefinita, quindi in questo caso non è affatto necessaria.

Secondo w3schools , dovresti impostarlo come: selected = " selezionato " ;. Questo ti dice quale opzione è inizialmente selezionata e ti consente di impostarla tramite lo script in un secondo momento.

Non ci sono altri valori validi diversi da " selezionato " per quell'attributo. ( http://www.w3schools.com/TAGS/att_option_selected.asp )

È meglio impostare la proprietà selectElement.selectedIndex da Javascript o rimuovere del tutto l'attributo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top