Javascript und select()

tombo82

Mitglied
Hi, ich nochma,

ich gehe mit diesem Code eine anzahl von Inputs durch:

PHP:
document.onkeydown=function(e)
{
  key=(window.event)?window.event.keyCode:e.keyCode;
  var x=((key==38)?-1:((key==40)?1:0))
  var tab;
  if(x)
    {
      try
      {
          document.getElementsByName('anzahlessen['+(i+x)+']')[0].focus();
          //document.getElementsById('input['+(i+x)+']')[0].focus();
         document.getElementsById('input['+(i+x)+']')[0].select();
          tab=(i+x);
         }
         catch(e){}
    }
}


Nun stehen in manchen Inputs schon Werte aus einer Datenbank.
Nun soll der Wert im Input markiert werden, wenn was drin steht.
Im Firefox klappt das aber im IE6 nich:
PHP:
document.getElementsById('input['+(i+x)+']')[0].select();
 
Hi,

ohne Deinen HTML-Code zu kennen, ist das wohl schwierig. Warum wählst Du denn das Element einmal über den Namen und einmal über die ID aus? Erhält das Element denn den Fokus?
Schalte im IE mal die Ausgabe von Javascriptfehlern ein.

LG
 
hier das input:
PHP:
<input type='text' id='test1' tabindex='".$zähler."' name='anzahlessen[$zähler]' value='".trim($aBesttag['anzahl'])."' size='3' maxlength='3'   onFocus='markit(this)'/>

Das mit der ID und dem NAMEN ist noch aus testzwecken...
Sollte nich stören, habs auch schon mit dem Namen versucht, und das gleiche ergebnis erziehtl..
Weder Firebug noch der IE melden einen Fehler...
 
Hi,

Weder Firebug noch der IE melden einen Fehler...

naja, Du hast es ja auch in einen try..catch-Block gebettet, gibst aber nichtmal irgendetwas aus, wenn eine Exception geworfen wird. Nimm das doch probehalber mal ganz raus.

Also, erst einmal muss die ID eines Elementes dokumentweit eindeutig sein. Also liefert getElementById() auch kein Array, sondern genau den eindeutigen Knoten.
Zweitens ist die ID Deines Inputfeldes "test1" und nicht "input[zahl]". Wie soll die Funktion da etwas finden...

Und poste das nächste Mal bei einem solchen Problem bitte den Code, der im Browser ankommt und nicht eine (noch dazu unvollständige) PHP-Zeile.

LG
 
So ich habs rausgenommen und abgeändert, und trotzdem passiert nix... :-(
Bekomme keine Fehlermeldung... weder beim IE noch im Firefox...

Der Focus wird gesetzt...

Code:
if(x)
 {
          document.getElementsByName('anzahlessen['+(i+x)+']')[0].focus();
          document.getElementsByName('anzahlessen['+(i+x)+']')[0].select();
}
 
Zuletzt bearbeitet:
mach mal n
Code:
alert(document.getElementsByName('anzahlessen['+(i+x)+']')[0])

um des rätsels lösung näher zu kommen.
gib mal bitte dann was er dir ausgibt.
 
Code:
document.onkeydown=function(e)
{
    .
    .
    .
     document.getElementsByName('anzahlessen['+(i+x)+']')[0].focus();
     alert(document.getElementsByName('anzahlessen['+(i+x)+']')[0]);
    .
    .
    .
}

"Undefined" sagt die Box
wenn ichs
 
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; 
                                charset=ISO-8859-1"   />
<meta name="author"             content="doktormolle" />
<meta name="date"               content="2009-02-25" />
<title>Test</title>
<script type="text/javascript">
<!--
var i=0;
document.onkeydown=function(e)
{
  key=(window.event)?window.event.keyCode:e.keyCode;
  var x=((key==38)?-1:((key==40)?1:0))
  if(x)
    {
      try{
          document.getElementsByName('anzahlessen['+(i+x)+']')[0].select();    
          }catch(e){}
    }
}
function markit(o)
{
  i=o.tabIndex;
}
//-->
</script>
</head>
<body>
<form>
<input name="anzahlessen[1]" tabindex="1" onfocus="markit(this)" value="wert">
<input name="anzahlessen[2]" tabindex="2" onfocus="markit(this)" value="wert">
<input name="anzahlessen[3]" tabindex="3" onfocus="markit(this)" value="wert">
<input name="anzahlessen[4]" tabindex="4" onfocus="markit(this)" value="wert">
<input name="anzahlessen[5]" tabindex="5" onfocus="markit(this)" value="wert">
</form>
</body>
</html>

Funktioniert bei mir überall.
 

Neue Beiträge

Zurück