Hartmut: Grafik fuer submit-Button austauschen ?

Hi,

gibt es eine Möglichkeit (JavaScript), die Grafik eines
submit-Buttons per JavaScript auszutauschen.
Offensichtlich wird ein input typ image anders als ein
image behandelt. Da sich der Teil in einer Tabelle
befindet, und ich dann haeufiger Schwierigkeiten mit
document.write hatte, moechte ich erst eine grafik anzeigen, die fuer bestimmte Browser entfernt wird.

Aufgabe: ich habe ien DropDown-Feld, von dem aus per
onChange diverse Internet-Seiten aufgerufen werden
sollen. Dies Funktioniert im IE und NS ab v3 auch ganz
gut. Leider gibt es aber einige Browser die onChange
nicht kennen und deshalb muß ich hierfuer auch einen
submit-Button anbieten der ein entsprechendes cgi
aufruft. Bei den o.g. Browsern soll die Funktion aber
Clientseitig per JS ausgefuehrt werden, und deshalb
moechte ich dort den submit-button nicht haben.
Um dies zu realisieren dachte ich mir standardmaessig
einen Grafik-Button zu nutzen, der bei korektem Browser
(ich weis, image existiert im IE3 nicht) durch eine
leere Grafik ersetzt wird. Leider habe ich Probleme mit
dem Austauschen der Grafik.

Irgenjemand eine Idee ?

Hartmut Schoepke

  1. Hallo Hartmut!

    Mein Vorschlag:
    Wenn Du mit CGI arbeitest, kannst Du ein Formular
    auch wie folgt absenden:

    <a href="javascript:document.formname.submit()">Formular absenden</a>

    Statt irgendeinen Text kann man jetzt natürlich auch wieder
    ein <image...> zwischen die <a...> und </a>-Tags einfügen.
    Dies klappt allerdings nur, wenn das Formular wirklich per http
    auf ein CGI-Skript zeigt (also <form method=post action="http://my.url.com/cgi-bin/test.pl">).
    Mit einem 'mailto:' hinter "action=" funktioniert es nicht, da die Browser
    sich dann schlicht weigern, den submit()-Befehl auszuführen.

    Läßt sich hiermit Dein Problem lösen?

    Viele Grüße,

    Andreas

    1. Hi,

      gute Idee, es gibt aber auch noch einige die kein
      JavaScript (an)haben.
      Also habe ich den Button jetzt in einem noscript
      integriert. Wenn ich Deinen Code trotzdem nutze hätte
      ich in diesem Fall 2 Grafiken.

      NEUE FRAGE:
      Welche JS-faehigen Browser koennen kein onChange ?

      Schon mal Danke für Eure Hilfe

      Hartmut Schoepke

  2. Hallo,

    gibt es eine Möglichkeit (JavaScript), die Grafik eines
    submit-Buttons per JavaScript auszutauschen.

    Nein, so eine Grafik ist kein Image-Objekt.

    Aufgabe: ich habe ien DropDown-Feld, von dem aus per
    onChange diverse Internet-Seiten aufgerufen werden
    sollen. Dies Funktioniert im IE und NS ab v3 auch ganz
    gut. Leider gibt es aber einige Browser die onChange
    nicht kennen und deshalb muß ich hierfuer auch einen
    submit-Button anbieten der ein entsprechendes cgi
    aufruft.

    Hm, jein.
    Das mit dem onchange ist naemlich eine andere Geschichte. Die Browser, die Du sicher meinst, kennen das schon, reagieren aber nicht in dem Moment, in dem man in der Select-Box was anderes auswaehlt, sondern erst, wenn die nicht mehr aktiviert ist (gilt ueberigens auch fuer Navi3 unter Win3.x). Probier mal aus, indem Du einfach nach dem Wechsel irgendwo klickst, von mir aus mitten ins Fenster.
    Das ist allerdings (fast) ebenso bloed wie Nichtreagieren. Wie soll man dem Benutzer beibringen, dass er einfach mal klicken muss?

    Was koennte man tun? Mal so ganz grob:

    Irgendwo eine Grafik unterbringen, auf der "Abschicken" steht, muss nicht mal ein Link
    dahinter sein. Man kann aber z.B auch einen dahintersetzen, vielleicht auch einen,
    der gar nichts tut (ausser eben Mauszeiger veraendern)
    Die Grafik kann man sofort ausblenden bei Browsern, die sie nicht brauchen <IMG onload...>
    Damit haettest Du einen Weg mit JavaScript fuer alle, die ueberhaupt JS kennen.

    Bleibt die Variante: CGI fuer  gar kein JS. Die hast Du bis dahin noch nicht.
    Muss die jetzt noch sein?
    Da faellt mir dan nur <NOSCRIPT> ein, den Submit-Button dann da rein.
    Dann hast Du allerdings bei Navi2 das Ding doppelt, wenn JS eingeschaltet ist.
    Opera koennte Dir vielleicht die Tabelle "versauen", wenn ein Teil davon NOSCRIPT ist,
    muss aber nicht unbedingt passieren.
    Frage ist - wie weit willst oder musst Du das treiben?
    Mit ein paar Klimmzuegen ginge vielleicht auch da noch was, weiss ich jetzt nicht.
    Aber lohnt sich das dann noch? Oder geht man dann doch gleich generell auf CGI oder
    macht zwei Versionen?

    Christine