2013-04-29 4 views
11

Chrome versione (digitare about: Versione 28.0.1491.0 canarino e 26.0.1410.65 Google Chrome): sistema operativo (Mac OS X Mountain Lion): Il problema si verifica solo con Chrome Canary e Google Chrome standard. Non c'è alcun problema con Firefox, Safari e IE9 (Windows testato) ultime versioni.Possibile bug con <select> modifica <option> valore e il pulsante Indietro su Chrome

Il codice seguente modifica tutti i valori dello stato di acquisto come i valori di testo.

Quindi inviarlo a un'altra pagina e fare clic sul pulsante Indietro della pagina del browser. L'opzione selezionata NON è visibile (cioè mostra vuoto) nel menu a discesa, anche se la sorgente HTML lo mostra ancora selezionato.

Se non si esegue la funzione jquery e si invia e si fa clic su Indietro sul browser, il testo dell'opzione selezionata viene visualizzato correttamente nell'elenco a discesa.

Forse la sua jquery su chrome o forse il suo javascript su Chrome.

Qualche idea?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd" 
    > 
<html> 
</head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
</head> 
<body> 
<form target="_self" action="http://google.com"> 
    Click Submit. When it goes to google, Click Back button of browser.<br/> 
    Will see that drop down is empty! 
    <!-- Abbreviated states list --> 
    <select name="stateBill" class="required" id="stateBill"> 
     <option value="">- Select -</option> 
     <option value="1">Alabama</option> 
     <option value="2">Alaska</option> 
     <option value="3" >American Samoa</option> 
     <option value="4" selected="selected">Arizona</option> 
     <option value="5">Arkansas</option> 
    </select> 
    <input type="submit" value="Submit"> 
<form> 
</body> 
<script> 
$(function(){ 
    // Change all state values to be the same as the state text. 
    var text; 
    $("#stateBill option:gt(0)").each(function(i,j){ 
     text=$(j).text(); 
     $(j).val(text); 
    }); 
}) 
</script> 
<html> 
+0

Stai cercando una soluzione alternativa, una spiegazione o cosa? – icktoofay

+0

Ho trovato una soluzione semplice creando un testo nascosto e appena prima di un invio o modifica lo si imposta sul valore selezionato. C'è un altro suggerimento? Immagino che mi stavo chiedendo se questo è un bug o sto facendo qualcosa di sbagliato. – user603749

+0

Mi sono imbattuto nello stesso problema, e dopo ore di headbanging contro il mio codice, sono arrivato alle stesse conclusioni. Il completamento automatico = off lo ha risolto all'istante. – Cyprus106

risposta

0

Ho trovato una soluzione semplice creando un testo nascosto e appena prima di un invio o modifica impostarlo sul valore selezionato.

15

Avevo lo stesso problema e ho riscontrato questo problema durante la ricerca su Google. Per chiunque altro inciampare in questo: ho risolto il problema impostando 'autocomplete = "off"' nel modulo. Naturalmente, questo potrebbe non essere desiderabile per tutte le situazioni.

Sto eseguendo Chrome 30.0.1599.101 su OSX 10.9. Il sito web è costruito usando il framework Wicket (che usa jQuery per AJAX).

+4

Come l'hai trovato? È una pura magia nera. Dovremmo essere ufficialmente designati come stregoni. – user194715

+2

Mi hai salvato ore – Spir

+1

Genius. Avevo già passato ore ... ma mi hai risparmiato ore DI PIÙ. GRAZIE. – Cyprus106

Problemi correlati