am: Buttons ohne JavaScript in IE7

Hallo,

habe seit Jahren für Formulare folgende Button-Notierung verwendet, damit die Weiterleitung auch bei deaktivierten JavaScript funktioniert.

<a href="ich.php?modus=neu&typ=vortrag">
  <input type="button" value="Neuen Vortrag anlegen">
</a>

Bei allen Browsern scheint das problemlos zu funktionieren. Nur der Internet Explorer 7 interpretiert den Link nicht. Ich habe folgende Alternative gefunden, um JavaScript zu umgehen:

<form method="post" action="newpage.htm">
   <input type="submit" value="Go" />
</form>

Mit IE7 scheint es auch zu funktionieren. Ist das so einigermaßen sauber? Auch noch, wenn es mehrere Buttons auf der gleichen Seite geben soll? Oder gibt es eine bessere Alternative?

Danke
Andreas

  1. Liebe(r) am,

    <gebetsmuehle>Ein Hyperink ist ein Hyperink, also ein Verweis, und der wird in (X)HTML als <a>-Element mit einem href-Attribut notiert, wobei im href-Attribut die Ziel-URL des Verweises notiert wird.</gebetsmuehle>

    <a href="ich.php?modus=neu&typ=vortrag">
      <input type="button" value="Neuen Vortrag anlegen">
    </a>

    Was willst Du mit diesem <input>-Element innerhalb eines Links? Ist das nach Doctype überhaupt zugelassen? Was sagt denn der Validator dazu? Ich bin mir sicher, dass er das als Fehler bemängeln wird!

    <form method="post" action="newpage.htm">
       <input type="submit" value="Go" />
    </form>

    Hier verwendest Du ein Formular (das dazu dient, Werte an den Server zu übermitteln)... Du wolltest doch einen Link haben, oder?

    Wenn Deine Links wie Knöpfe zum Drücken aussehen sollen, dann verwende CSS, um sie so aussehen zu lassen. Ansonsten erwartet der Besucher Links im üblichen Sinne. Da Du gar von Deiner Navigation sprichst, möchte ich Dir das SELF-Kapitel zu Navigationsmenüs ans Herz legen: http://de.selfhtml.org/css/layouts/navigationsleisten.htm

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo,

      Was sagt denn der Validator dazu? Ich bin mir sicher, dass er das als Fehler bemängeln wird!

      Kontrolle ist besser.

      Mathias

      1. Lieber Mathias,

        Was sagt denn der Validator dazu? Ich bin mir sicher, dass er das als Fehler bemängeln wird!
        Kontrolle ist besser.

        danke für diesen aufklärenden Link. Diese Verschachtelung eines <input>-Elements außerhalb eines jeglichen <form>-Elements ist offensichtlich korrektes HTML. Wieder etwas dazugelernt. *g*

        Trotzdem hat das input-Element meiner Meinung nach dort keinen wirklich Sinn, da sein Verwendungszweck eigentlich ein anderer ist... zumindest meiner Meinung nach. Aber die war ja nicht Gegenstand des OP.

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Hallo,

    wenn du einen Hyperlink willst, der wie ein Button aussieht, dann verwende einen normalen Hyperlink (a-Element) und formatiere ihn so wie ein Button. Dazu ist CSS hinreichend geeignet. Tricks mit HTML machen die Sache nur unzuverlässig, unzugänglich, unflexibel. Mit den CSS-Eigenschaften border, background-color, padding kannst du eine Darstellung wie ein Button erreichen (Buttons sind intern auch nicht anders umgesetzt).

    Ich habe folgende Alternative gefunden, um JavaScript zu umgehen:

    <form method="post" action="newpage.htm">
       <input type="submit" value="Go" />
    </form>

    Dieses Codebeispiel macht vor allem etwas anderes, nämlich sendet es eine POST-Anfrage ohne die besagten GET-Parameter. Wenn du bloß einen Link notieren willst, dann reicht wie gesagt ein entsprechend formatiertes a-Element.

    Mathias