2013-04-29 11 views
11

wersja Chrome (wpisz about: Wersja 28.0.1491.0 Kanaryjskich i 26.0.1410.65 Google Chrome): systemu operacyjnego (Mac OS X Mountain Lion): Problem występuje tylko z Chrome Canary i zwykłym Google Chrome. Nie ma problemu z najnowszymi wersjami przeglądarki Firefox, Safari i IE9 (Windows testowane).Możliwy błąd z <select> modyfikacji <option> wartości i przycisk z powrotem na Chrome

Poniższy kod zmienia wszystkie wartości stanu binarnego na takie same, jak wartości tekstowe.

Następnie prześlij go na inną stronę i kliknij przycisk Wstecz na stronie przeglądarki. Wybrana opcja NIE jest widoczna (tzn. Jest pusta) z menu rozwijanego, mimo że źródło HTML nadal pokazuje wybraną opcję.

Jeśli nie wykonuję funkcji jquery i nie klikam przycisku Wstecz w przeglądarce, tekst wybranej opcji pojawi się na liście rozwijanej poprawnie.

Może to jquery na chrome, a może na javascript w wydaniu Chrome.

Wszelkie pomysły?

<!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

Szukasz rozwiązania, wyjaśnienia lub czego? – icktoofay

+0

Znalazłem proste obejście, tworząc ukryty tekst i tuż przed przesłaniem lub zmianą ustaw go na wybraną wartość. Czy jest inna sugestia? Chyba zastanawiałem się, czy to błąd, czy robię coś nie tak. – user603749

+0

Natknęłam się na ten sam problem, a po kilku godzinach headbangingu przeciwko mojemu własnemu kodowi doszedłem do tych samych wniosków. Autocomplete = off natychmiast go naprawił. – Cyprus106

Odpowiedz

0

Znalazłem proste obejście, tworząc ukryty tekst i tuż przed przesłaniem lub zmianą ustaw go na wybraną wartość.

15

Miałem ten sam problem i natrafiłem na ten problem podczas wyszukiwania w Google. Dla każdego, kto się o to potknął: naprawiłem problem, ustawiając w formularzu "autocomplete =" off ". Oczywiście może to nie być pożądane we wszystkich sytuacjach.

Używam Chrome 30.0.1599.101 na OS X 10.9. Strona internetowa jest zbudowana w oparciu o framework Wicket (który wykorzystuje jQuery dla AJAX).

+4

Jak to znalazłeś? To czysta czarna magia. Powinniśmy zostać oficjalnie wyznaczeni na czarowników. – user194715

+2

Uratowałeś mi godziny – Spir

+1

Geniusz. Spędziłem już wiele godzin ... ale zaoszczędziłeś mi więcej WIĘCEJ. DZIĘKUJĘ CI. – Cyprus106

Powiązane problemy