2010-03-13 10 views
19

einzureichen hat die HTML-Version in letzter Zeit geändert (wie von IE7 IE8?) ich die folgende Änderung feststellen, dass mir etwas troulbe verursachen - ich einen Code habe, die zu diesem ähnlich ist:Schaltfläche in Form Ursache automatisch

<form method="POST" action="/admin/modify"> 
<input type="text"/> 
<button onclick="dosomething()">Press</button> 
</form> 
<script type="text/javascript"> 
function doSomething(){ 
// doesn't matter what actually 
} 
</script> 

Was in diesem Code zu mir weired ist, dass die Taste in der Form durch Pressen, alles, was ich will, ist eine Javascript-Aktion durchzuführen, aber es verursacht eventaully die Form auch vorgelegt werden, auch wenn ich nicht bereit, es zu tun.
Also - ist es wahr? und wenn ja, wie kann ich einige Java-Script-Aktionen in einem von durchführen, aber verhindern, dass das Formular automatisch gesendet wird?

+0

Dies ist nicht nur ein Problem mit IE. Dies geschieht auch in Chrome. Laut @ Pekkas Antwort hat das Hinzufügen von type = "button" das für mich gelöst. –

Antwort

33

Nach W3schools ist submit die neue Standardaktion für button Elemente in IE 8:

immer das type-Attribut für die Schaltfläche festlegen. Der Standardtyp für den Internet Explorer ist "button", während er in anderen Browsern (und in der W3C-Spezifikation) "submit" ist.

Also, wenn Sie keinen Typen angeben, wird das Formular in allen Browsern vorgelegt werden, aber nicht IE 7.

dies sollte funktionieren:

<button type="button" onclick="dosomething()">Press</button> 
+1

vielleicht ist dieser Link relevant und meine Frage zu beantworten: http://Stackoverflow.com/questions/932653/how-to-prevent-buttons-from-submitting-forms – Spiderman

+0

reibungslos es hat funktioniert. Nur um den type = "button" hinzuzufügen. Ich musste am Ende des Befehls nicht einmal falsch zurückkehren. Es ist mir nicht in den vorherigen IE-Version (IE7) aufgetreten, muss sagen. – Spiderman

+0

lol Pekka, ich denke du liest das Zitat falsch. W3Schools schlägt vor, dass in IE der Standardtyp "button" ist, was für IE8 nicht korrekt ist. Das heißt, in allen Browsern außer IE7 und niedriger wird eine Schaltfläche ohne Typ das Formular senden. –

2

Aus der IE-Dokumentation für die button element:

Internet Explorer 8 und höher. Der Standardwert dieses Attributs hängt vom aktuellen Dokumentkompatibilitätsmodus ab. Im IE8-Modus ist der Standardwert submit. In anderen Kompatibilitätsmodi und früheren Versionen von Internet Explorer ist der Standardwert button.

Der Standard legt der Standardtyp submit, frühere Versionen von IE ist falsch button vorbelegt

Verwandte Themen