Elya: + JAVASCRIPT <input type="image"> nicht als element erkannt?

Hallo Forum,

ich krieg die Krise heute morgen!
Ein simples Fomular im Mini-Popup:

Löschen: Ja / Nein
"Nein" ist ein <img> mit Link, das onClick einfach nur ein self.close() auslöst

"Ja" ist ein
<input type="image" name="send" src="foo.gif" width="90" height="21" value="yes">

Und dann gibt es noch ein
<input name="id" type="hidden" value="foo">
das den User-Id des zu löschende Datensatzes mitschickt

Das Problem ist ein relativ bekanntes: der Kunde möchte, daß das Formular auch via "Enter-Taste" abgeschickt wird. Dazu möchte ich dem Ja-Button den focus vermitteln. Soweit klar. Ich notiere also unterhalb des Formulars in einen Scriptbereich:

document.forms[0].elements[1].focus();

wobei elements[1] das imagefeld _sein sollte_. elements[0] ist das hidden field.

Beim Drücken der Enter-Taste passiert nichts. Beim Debuggen bekomme ich ein "no properties" für das angesprochene Element. Wenn ich das hidden-field rausschmeiße, gibt mir
document.forms[0].length den Wert "0" zurück, d.h. das <input type="image"> wird nicht als Formularelement erkannt und kann ergo natürlich auch keinen focus bekommen! Ähnliche Ergebnisse liefert mir ein Testscript, das mir in einer for-Schleife alle Werte zu type und name des Formular ausgeben soll. Es gibt nur das hidden-field an.

Was mache ich bloß falsch? Wo ist mein Denkfehler bzw. was habe ich übersehen?

Ja, ich habe die entsprechenden Kapitel im Archiv gelesen.
Ja, Javascript ist bei dieser Applikation ausdrücklich eine zulässige Technologie ;-) wenn sie mich gerade auch zur Verzweiflung treibt...

Für einen Tipp bedanke ich mich!

Schöne Grüße aus Köln-Ehrenfeld,

Elya

--
We are still confused, but on a higher level.
  1. Hallo,

    Beim Drücken der Enter-Taste passiert nichts. Beim Debuggen bekomme ich ein "no properties" für das angesprochene Element. Wenn ich das hidden-field rausschmeiße, gibt mir
    document.forms[0].length den Wert "0" zurück, d.h. das <input type="image"> wird nicht als Formularelement erkannt und kann ergo natürlich auch keinen focus bekommen!

    Verwende eine ID:
    <input id="abc" src="xyz.gif" type="image">

    und entsprechend im Script:
    document.getElementById("abc").focus();

    MfG, Thomas

    1. Danke Thomas,

      das hat prima geklappt! Mußte nur noch die Existenz des Elements vorher prüfen, damit das Script auch nur dann feuert, wenn es soll (denn in der darauf folgenden Danke-Seite gibt es das Formularelement ja nicht mehr)

      Schöne Grüße aus Köln-Ehrenfeld,

      Elya

      --
      We are still confused, but on a higher level.
  2. Hi,

    Was mache ich bloß falsch? Wo ist mein Denkfehler bzw. was habe ich übersehen?

    nix - aber input type image ist nicht in der form-collection enthalten, genausowenig in in der image-collection

    Für einen Tipp bedanke ich mich!

    eventuell sowas:
    function go() {
     alert(document.getElementById("sender").value);
     return false;
    }
    .
    .
    .
    <form Name="feld" onsubmit="return go()">
        <input type="text" name="ausgabe" size="30">
        <input type="image" value="myValue" id="sender" src="schluessel.jpg">
    </form>

    Gruesse  Joachim