13 Stimmen

Schaltfläche vs input type="submit" vs a onclick="document.formname.submit()"

Ich versuche gerade, diese Schaltflächen zu implementieren: http://web.archive.org/web/20110721191046/http://particletree.com/features/rediscovering-the-button-element/

Ich kann mich nicht entscheiden, was ich nehmen soll, da wir hier meistens IE6 benutzen. Soweit ich das beurteilen kann...

Taste:

  • Ermöglicht das Absenden des Formulars wie gewohnt (d. h. durch Drücken der Eingabetaste im Formular), lässt sich deaktivieren, entspricht den Standards und ist nicht auf Javascript angewiesen.
  • Kein :hover im IE6 ohne Verwendung von Suckerfish, aber man kann es dann nicht entsprechend gestalten und ist auf eine einzige Hintergrundfarbe beschränkt & hat einen schrecklichen schwarzen Rand im IE6

input type="submit":

  • Außerdem können Sie das Formular wie gewohnt absenden
  • Ich kann keine Bilder einbinden, so dass ich für das, was ich brauche, eine dumme Menge an Klassendateien brauche, und wieder kein :hover im IE6 ohne Suckerfish

a onclick="document.formname.submit()"

  • Einfache Gestaltung im IE6 ohne Hacks
  • Es ist nicht so einfach, damit zu arbeiten, ohne Hacks! dh Sie können nicht die Schaltfläche mit der Eingabetaste senden

... also frage ich mich nur, welche der drei, die im Allgemeinen bevorzugt wird? Im Idealfall möchte ich wohl eher die Funktion als den Stil, aber es ist eine Voraussetzung, dass hier Javascript aktiviert ist (es ist nur für eine Intranetseite), und ich denke, im Allgemeinen stört es die Leute nicht allzu sehr, was im Hintergrund vor sich geht? Hmm.

0 Stimmen

Wahrscheinlich die schlechteste Lösung überhaupt, aber wenn mit document.formname.submit(), dass ich auch eine versteckte Schaltfläche einschließen könnte, so dass der Benutzer noch drücken Sie Enter, um das Formular wie gewohnt zu senden? Hmm.

3 Stimmen

Eigentlich ist "input type=submit" derjenige, der kein Javascript zum Absenden benötigt. Bei "type=button" und "button" können Firefox und vielleicht einige andere Browser das Formular abschicken, aber nicht der IE. Sie haben auch "input type=image" ausgelassen, das den Bildersatz für "type=submit" darstellt.

0 Stimmen

Danke okw - input type="image" klingt gut, aber ich möchte auch etwas Text. Wenn der Benutzer beispielsweise Informationen korrekt eingibt, möchte ich, dass ein kleines Häkchen-Symbol und etwas Text angezeigt wird, andernfalls wird es ausgegraut und deaktiviert.

11voto

NilColor Punkte 3392

Gehen Sie für onclick="document.formname.submit()" Route für den Stil und fügen Sie eine versteckte Schaltfläche für die Funktionalität hinzu.

0 Stimmen

Danke - ich kann für diese gehen, ich weiß, es ist wirklich nicht ideal aus einer Codierung Sicht, aber vielleicht für die Nutzer wird es am besten funktionieren.

0 Stimmen

Oh, okay, ein Problem damit - ich verwende <a href="#" onclick="document.formname.submit()">, was in Ordnung ist, aber Sie an den Anfang der Seite wirft, wenn Sie es anklicken. Gibt es irgendwie zu machen, so dass es nicht an den Anfang der Seite springen wird? return false funktioniert nicht, weil es nur stoppt es zu übermitteln!

3 Stimmen

Try onclick="document.formname.submit();return false;" um dafault onclick handler zu verhindern.

5voto

MillsJROSS Punkte 1239

Ich empfehle die Schaltfläche "Absenden", weil sie genau dafür da ist. Wenn Sie behinderte Benutzer haben, ist die Schaltfläche "Absenden" für sie die sinnvollste Schaltfläche.

Wenn Ihnen der Rahmen um die Schaltflächen im IE6 wirklich nicht gefällt, können Sie die Schaltfläche "Submit" mit JavaScript ausblenden und dann eine eigene Schaltfläche mit den gewünschten Stilen erstellen. Wenn Ihre selbst erstellte Schaltfläche angeklickt wird, rufen Sie den onclick-Ereignishandler der Schaltfläche "Submit" auf (der das Formular übermittelt). Auf diese Weise kann der Benutzer immer noch die Eingabetaste drücken, um Daten zu übermitteln, und die Übermittlungstaste bleibt für Personen, die JavaScript deaktiviert haben, erhalten.

3voto

Joscha Punkte 4593

Wenn Sie <a> con onclick vergessen Sie nicht, die role="button" y wairole="button" und setzen auch die onkeypress Handler, um die " Taste " zugänglich!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X