Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: innerHTML i option
Forum PHP.pl > Forum > XML, AJAX
jastu
Witajcie,
mam skrypt w php który wyświetla : <option value ="1">Pierwsza</option><option value="2">Druga</option>
Jeśli wstawiam to Ajaxem w SELECTA który ma ustalone ID to w FF i Operze pojawiają się w nim nowe opcje, natomiast w IE nie są one dodawane. Czego to może być przyczyna ?

Dla szukających rozwiązania
http://elmicoxcodes.blogspot.com/2007/02/i...tion-in-ie.html
mbartosik
Wiem W czym jest problem ;-).
Po prostu operacje dodawania nowego Obiektu Option
musisz ująć w blok try - catch
Poniżej dam szybki przykład

  1. <script type="text/javascript">
  2. function AddNewOptionValue(){
  3. var select_var=document.getElementById("test"); //odwołanie do Selecta
  4. var new_option=document.createElement('option'); //tworzymy sobie nowy obiekt typu option
  5. new_option.text="blabla"; //wpisujemy tekst
  6.  
  7. try
  8. {
  9. select_var.add(new_option,null); // według standardów
  10. }
  11. catch(ex)
  12. {
  13. select_var.add(new_option); // IE musi się wyróznić
  14. }
  15. }
  16. </script>
  17. <body>
  18. <select name="test" id="test">
  19. <option value="1">Test1</option>
  20. <option value="2">Test2</option>
  21. </select>
  22. <br>
  23. <input type="button" value="dodaj" onclick="AddNewOptionValue();" >
  24. </body>
  25. </html>


Jak widać metoda add obiektu SELECT pobiera w 1 parametrze obiekt typu OPTION,parametr numer 2 określa PRZED
którym elementem ma być wstwiony, jeżeli null jak w przykładzie to nastąpi dodanie na koniec listy.
IE sie wyłamuje ze standardów (jak zwykle laugh.gif ) i pobiera tylko jeden parametr metody add
Mam nadzieje ze pomogłem laugh.gif
jezoo
@mbartosik dzieki, bo wlasnie szukalem rozwiazania na temat dodawania OPTION do SELEC;ta smile.gif
pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.