ugrás a tartalomhoz

IE multiple select option value js bug, HELP

toxin · 2006. Szep. 6. (Sze), 21.48
http://toxin.hu/tutorial/select2/test.html

aki megtudja oldani hogy a fenti select, ami csak abban különbözik az alsótól hogy multiple, helyes value-értéket adjon vissza (katt akármelyik felső elemen), az plííííííííííííííííííííííz
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />  
  5. <title>option test</title>  
  6.   
  7. <script src="./scripts/prototype.js" type=""></script>  
  8. <script src="./scripts/scriptaculous.js" type=""></script>  
  9.   
  10. <script language="javascript" type="text/javascript">  
  11. window.onload = function(){  
  12.     var select_1 = Builder.node('select',{id:'test',multiple:'multiple',size:10});  
  13.     var select_2 = Builder.node('select',{id:'test',size:10});  
  14.   
  15.     for (var i=1;i<=10;i++)  
  16.     {  
  17.         select_1.appendChild(Builder.node('option',{id:'opt'+i,value:i},'test'+i));  
  18.         select_2.appendChild(Builder.node('option',{id:'opt'+i,value:i},'test'+i));  
  19.     }  
  20.       
  21.     select_1.onclick = function(){  
  22.         alert(this.selectedIndex);  
  23.     }  
  24.     select_2.onclick = function(){  
  25.         alert(this.selectedIndex);  
  26.     }  
  27.   
  28.     $('wrapper_1').appendChild(select_1);$('wrapper_2').appendChild(select_2);  
  29. }  
  30. </script>  
  31. </head>  
  32. <body>  
  33. <div id='wrapper_1'></div>  
  34. <div id='wrapper_2'></div>  
  35. </body>  
  36. </html>  
  37.    
gugliba ne küldjetek ott voltam egész délután, fx alatt megy persze össze lehet vetni , thx
 
1

re

toxin · 2006. Szep. 6. (Sze), 21.50
ismert hiba rengeteg helyen fentvan gugliban csak megoldást nem leltem :( országomat a megoldásért, a hajamat már odaadtam :))
2

Mit jelent a helyes érték?

Jano · 2006. Szep. 6. (Sze), 22.40
Multiple-nél értelemszerűen nem egy értéket kell visszaadnia. How to get selected items from <select multiple ... > using Javascript
3

semmit nem ad vissza

toxin · 2006. Szep. 6. (Sze), 22.58
nemhogy értéket, az a hiba lényege hogy DOM metódussal van hozzáadva, ha simán html-be van írva nem probléma

http://toxin.hu/tutorial/select2/test2.html
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />  
  5. <title>option test</title>  
  6.   
  7. <script src="./scripts/prototype.js" type=""></script>  
  8. <script src="./scripts/scriptaculous.js" type=""></script>  
  9.   
  10. <script language="javascript" type="text/javascript">  
  11. window.onload = function(){  
  12.     var select_1 = Builder.node('select',{id:'test',multiple:'multiple',size:10});  
  13.     var select_2 = Builder.node('select',{id:'test',size:10});  
  14.   
  15.     for (var i=0;i<=10;i++)  
  16.     {  
  17.         select_1.appendChild(Builder.node('option',{id:'opt'+i,value:+i},'test'+i));  
  18.         select_2.appendChild(Builder.node('option',{id:'opt'+i,value:+i},'test'+i));  
  19.     }  
  20.       
  21.     select_1.onclick = function(){  
  22.        alert($F(this));  
  23.     }  
  24.     select_2.onclick = function(){  
  25.        alert($F(this));  
  26.     }  
  27.   
  28.     $('wrapper_1').appendChild(select_1);$('wrapper_2').appendChild(select_2);  
  29. }  
  30. </script>  
  31. </head>  
  32. <body>  
  33. <div id='wrapper_1'></div>  
  34. <div id='wrapper_2'></div>  
  35. </body>  
  36. </html>  
  37.    
$F -el lehet form mezőkből kinyerni az beállított értékeket prototype alatt, lehet látni IE vs fx (ctrl-al jelölgetve a fenti select option-jait IE akkora Bugajakab hogycsakna), de nekem spec a selectedIndex kéne, akárhogy csak js-el legyenek hozzáadva a select/option-ok

ha így jobban tetszik
Undocumented Bugs:

* BUG: when multiple=true, selectedIndex and value properties are inaccurate with multiple selections

http://channel9.msdn.com/wiki/default.aspx/Channel9.InternetExplorerProgrammingBugs

vagy
1. Bug: programmatically setting selections on multiSELECT elements (<SELECT multiple>) doesn't update value/selectedIndex properties, and doesn't fire onChange event
Summary: Several problems with MultiSELECTs (<SELECT multiple="true">) here...
Related docs: ??
Suggested Workarounds: ??

http://throbs.net/web/articles/IE-SELECT-bugs/#ieProgrammaticMultiSelectChanges

stb. :)
4

hasonló probléma

Anonymous · 2006. Szep. 6. (Sze), 23.08
nekem is hasonló problémám van, js-sel töltök fel egy selectet és ie nálam akkor hasal el, mikor a selectedIndex értékét akarom megadni, tehát nem lekérdezni. a dolog érdekessége, hogy a multiple opciót false-ra állítom előtte, és úgy sem működik.
holnap fogok szenvedni még egy kicsit vele, ha lesz valami ötletem, akkor beírom ide.

gex

u.i: ja igen, egy olyan problémám is volt vele, hogy ie-ben gyakorlatilag eltűnt az option-ök szövege, mintha láthatatlan lenne, de majd holnap csinálok egy demo oldalt, meg addig átnézem nem rontottam-e el valamit.
5

re

toxin · 2006. Szep. 6. (Sze), 23.12
szóljál mindenképp, vagy valaki, mert fogok egy weblapátot és bekopogok vele a microsofthoz ... :)))

amúgy nézegetve most a

http://channel9.msdn.com/wiki/default.aspx/Channel9.InternetExplorerProgrammingBugs

az oldalt ( FORM and FORM-related Elements issues alatt), most egy darabig form-ot tartalmazó dinamikus oldalt nem fejlesztek IE alá :( csak ezmenjen valahogy :S

ui: egyébként ott van a tied is

Undocumented Bugs:

* BUG: when multiple=true, selectedIndex and value properties are inaccurate with multiple selections
* BUG: when multiple=true, onchange and onpropertychange events do not fire correctly
* BUG: when multiple=true, value property is not updated when programmatically set; e.g. "sel.value=1; (sel.value==1)==false;"
* BUG: when size property>1 or multiple=true, "IE incompletely redraws relative-sized SELECTs during text-size changes":http://throbs.net/web/articles/IE-SELECT-rendering-bug/



:) :(
6

nem pont ez a baj

Anonymous · 2006. Szep. 6. (Sze), 23.49
gondolom erre gondoltál:
* BUG: when size property>1 or multiple=true, "IE incompletely redraws relative-sized SELECTs during text-size changes":http://throbs.net/web/articles/IE-SELECT-rendering-bug/


az én esetemben pont az a furcsa, hogy a size 1-re van állítva, a multiple pedig false-ra (mindkettő js-ből). a linket megnéztem de annál a bugnál csak összecsúsznak a szövegek, nekem viszont teljesen láthatatlan lesz az összes szöveg.

gex
7

megoldva

toxin · 2006. Szep. 7. (Cs), 07.37
thx, prototype, kódjában sok helyütt láttam már (sőt így utólag nem csak ott , js man-okban csak más kontextusban), csak tettem vele egy próbát itt is és lőn :)

http://toxin.hu/tutorial/select2/test3.html
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />  
  5. <title>option test</title>  
  6.   
  7. <script src="./scripts/prototype.js" type=""></script>  
  8. <script src="./scripts/scriptaculous.js" type=""></script>  
  9.   
  10. <script language="javascript" type="text/javascript">  
  11.   
  12. window.onload = function(){  
  13.     var select_1 = Builder.node('select',{id:'test',multiple:'multiple',size:10});  
  14.     for (var i=0;i<=10;i++)  
  15.     {  
  16.         select_1.appendChild(Builder.node('option',{id:'opt'+i,value:+i},'test'+i));  
  17.     }  
  18.   
  19.     select_1.onclick = function(){  
  20.         setTimeout(function() {alert ($F(this))}.bind(this), 10);  
  21.     }  
  22.       
  23.     $('wrapper_1').appendChild(select_1);  
  24. }  
  25. </script>  
  26. </head>  
  27. <body>  
  28. <div id='wrapper_1'></div>  
  29. </body>  
  30. </html>  
ill. eredeti kódban pl.
  1. setTimeout(function() {this.onClick(currentSelect)}.bind(this), 10);  
sima js-ben majd írja ide vki :)

üdv t