2010-03-13 5 views
19

a la version HTML modifiée récemment (comme de IE7 à IE8?) Je remarque les changements suivants qui me causent certains troulbe - J'ai un code qui est similaire à ceci:bouton dans le formulaire car il être soumis automatiquement

<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> 

ce qui est weired pour moi dans ce code est que en appuyant sur le bouton à l'intérieur de la forme, tout ce que je veux est d'effectuer une javascript action, mais eventaully il provoque la forme d'être trop soumis, même quand je ne suis pas prêt à le faire.
Alors, est-ce vrai? et si oui, comment puis-je effectuer une certaine script script java à l'intérieur d'un, mais empêcher le formulaire d'être soumis automatiquement?

+0

Ce n'est pas seulement un problème avec IE. Cela arrive aussi sur Chrome. Selon la réponse de @ Pekka, l'ajout de type = "button" a résolu cela pour moi. –

Répondre

33

Selon W3schools, submit est la nouvelle action par défaut pour button éléments IE 8:

toujours spécifier l'attribut de type pour le bouton. Le type par défaut pour Internet Explorer est "button", alors que dans d'autres navigateurs (et dans la spécification W3C) c'est "submit".

Donc, si vous ne spécifiez pas de type, le formulaire sera soumis dans tous les navigateurs, mais pas IE 7.

cela devrait fonctionner:

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

peut-être ce lien est pertinent et répondre à ma question: http://stackoverflow.com/questions/932653/how-to-prevent-buttons-from-submitting-forms – Spiderman

+0

en douceur, il a travaillé. Seulement pour ajouter le type = "bouton". Je n'ai même pas eu à retourner faux à la fin de la commande. Il ne me vient pas à l'esprit dans la version précédente IE (IE7) doit dire. – Spiderman

+0

lol Pekka, je pense que vous avez mal lu la citation. W3Schools suggère que dans IE le type par défaut est 'button', ce qui est incorrect pour IE8. Cela signifie que dans tous les navigateurs sauf IE7 et inférieur, un bouton sans type enverra le formulaire. –

2

De l'IE docs pour le button element:

Internet Explorer 8 et versions ultérieures. La valeur par défaut de cet attribut dépend du mode de compatibilité du document en cours. En mode IE8, la valeur par défaut est submit. Dans les autres modes de compatibilité et les versions antérieures d'Internet Explorer, la valeur par défaut est button.

La norme suggère le type par défaut est submit, les versions précédentes de IE de façon incorrecte par défaut à button

Questions connexes