2015-08-30 13 views
10

Per favore, spiegate come posso modificare la proprietà 'selezionata' dell'opzione? Es .:L'opzione Seleziona non è aggiornata proprietà 'selezionata' nella pagina Web HTML

<select id="lang_select"> 
    <option value="en" selected="selected">english</option> 
    <option value="ar">العربية</option> 
    <option value="az">azərbaycanlı</option> 
    <option value="bg">български</option> 
    <option value="ca">català</option> 
    <option value="cs">český</option> 
    <!-- some data cut --> 
</select> 

Quindi, se cambio la discesa valore della lista nulla è cambiato in html-dati. Perché?

Solo se provo a forzare la ricarica della proprietà utilizzando jQuery funziona.

$(document).on('change',"select",function(){ 
    var i = $(this)[0].selectedIndex; 
    var ch = $(this).children().each(function(index){ 
     $(this).prop('selected',index == i); 
     if (index == i) { 
      $(this).attr('selected','selected'); 
     } else { 
      $(this).removeAttr('selected'); 
     } 
    }); 
}); 

Perché? Come posso evitare questo? È possibile cambiare "selezionato" usando puro html?

EDIT io voglio questo e cioè attrbute nel tag html perché ho bisogno di salvare e ripristinare la parte di questo codice HTML in futuro.

risposta

12

aggiornamento, sostituito .attr("selected", true) per .prop("selected", true)

nota, il valore dell'attributo selected ritorna true oppure false, non "selected".

Prova utilizzando selettore $("option[value=" + this.value + "]", this), impostare la proprietà selected a true, .siblings() per rimuovere l'attributo selected da option non selezionato

$(document).on("change","select",function(){ 
 
    $("option[value=" + this.value + "]", this) 
 
    .attr("selected", true).siblings() 
 
    .removeAttr("selected") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select id="lang_select"> 
 
<option value="en" selected="true">english</option> 
 
<option value="ar">العربية</option> 
 
<option value="az">azərbaycanlı</option> 
 
<option value="bg">български</option> 
 
<option value="ca">català</option> 
 
<option value="cs">český</option> 
 
<!-- some data cut --> 
 

 
</select>

+0

Questo codice non aggiunge l'attributo tag 'selezionato'. Ma è possibile modificare questo codice per dare un risultato corretto. Come posso aggiungere correttamente attributo 'selezionato' in una riga? $ (This) .attr ('selezionato', 'selezionato'); - questo codice. – Vyacheslav

+0

@trololo Vedi post aggiornato – guest271314

0

Utilizzare il metodo val(). Quindi nel tuo caso, $("#lang_select").val('en'); seleziona l'opzione inglese. E comunque se vuoi che la prima opzione sia selezionata non hai bisogno dello selected="selected". Di default la prima opzione viene selezionata automaticamente.

+0

ho scritto io e cioè bisogno di questo attributo in HTML. – Vyacheslav

1

Non cambiamo il html sé, ma doe di modificare il valore del select

$('select').change(function(){ 
 
    $('#result').html($(this).val()); 
 
}).trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="lang_select"> 
 
    <option value="en" selected="selected">english</option> 
 
    <option value="ar">العربية</option> 
 
    <option value="az">azərbaycanlı</option> 
 
    <option value="bg">български</option> 
 
    <option value="ca">català</option> 
 
    <option value="cs">český</option> 
 
    <!-- some data cut --> 
 
</select> 
 
<hr /> 
 
<div id="result"></div>

+0

Ho aggiornato la mia domanda. Ho bisogno dell'attributo 'selected' per salvare e ripristinare questa parte del codice html. – Vyacheslav

+0

Dove salvi l'html? Whay non hai salvato il valore e lo hai impostato in seguito? –

+0

Sul server. Invio del codice html della pagina currect per salvare il lavoro corrente dell'utente. Quindi, quando l'utente scarica il suo lavoro in un secondo momento, è necessario selezionare l'opzione selezionata. – Vyacheslav

Problemi correlati