Ralf P.: Formulare im IE / onChange

Beitrag lesen

Hi Stefan,

Hi folks,

habe folgendes Problem (nur im IE)

ich habe ein Formular und möchte bei der Änderung eines input-Feldes oder select-Feldes eine Funktion aufrufen.

Soweit so einfach.
Allerdings kann ich im IE die Eingabe nicht mit Return abschliessen, sondern nur durch <tab> bzw. Mausklick.

genau, weil der IE mit einem Return in enem Textfeld das formular abschicken will. Falls Du mit <Enter> ins naechste Feld
springen willst, bleibt dir nichts anderes uebrig als den Key event abzufangen. Ich habe ein aenliches Problem so geloest:

<HEAD>
<TITLE>test</TITLE>
<SCRIPT language="JavaScript">
var Netscape = new Boolean();
Netscape =(navigator.appName == "Netscape");
function T1(Ereignis)
{
  if ((Netscape && Ereignis.which==13)
      (!Netscape && Ereignis.keyCode==13))
    document.bla.P.focus();
}
function Login(Ereignis)
{
  if ((Netscape && Ereignis.which==13)
      (!Netscape && Ereignis.keyCode==13))
    document.bla.submit();
}
</SCRIPT>
</HEAD>
<BODY onLoad="document.bla.N.focus()">

<form name="bla" method="POST" action="a1">

<input type="text" name="N" tabindex=1 maxlength="20" onKeyDown="T1(event);"><br>
<input type="text" name="P" tabindex=2 maxlength="20" onKeyDown="T2(event);"><br>

</form>
</BODY>
</HTML>

Gruesse

Ralf

»»

Habe folgenden Beispielcode herausdestilliert:

  • so wie es hier steht funzt es wie ich möchte
  • aber wenn ich ein 2tes <input>-Feld hinzufüge (den Kommentar im Code aufhebe) nicht mehr!

<html><head><title>Test</title>
  </head><body>
  <form name="Test">
<select size="1" name="spalten" onChange="alert('1st function-call')">
<option value="1">1. Ich bin zu blöd ?
<option value="2">2. Es geht halt nicht im IE ?
<option value="3">3. Ist doch nicht so schlimm ?
<option value="4">4. Wen interessiert das ?
<option value="5">5. Shit happens!
<option value="6">6. Mami !!!
</select>
  <input type=text size=10 maxlength=10 name="mm" onChange="alert('2nd function-call')" value="help">
<!--  <input type=text size=10 maxlength=10 name="oo" onChange="alert('3rd function-call')" value="me">-->
</form>
  </body></html>

Als Notlösung sind mir bis jetzt eingefallen:

  • 1 Extra-Button zu verwenden
  • 2 keyevents auf <Enter> überwachen

finde ich aber beides nicht so überzeugend

Falls jemand einen Tip hat wäre ich sehr dankbar.
Oder sagt mir Bescheid, wenn es im IE so nicht lösbar ist.

thanx

Gruss Stefan