2010-03-13 13 views
19

tiene la versión HTML modificada últimamente (como de ie7 a IE8?) Noté el siguiente cambio que me causa algún problema - Tengo un código que es similar a esto:botón en el formulario porque se envía automáticamente

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

lo que se weired a mí en este código es que pulsando el botón dentro de la forma, lo único que quiero es llevar a cabo algunos javascript acción, pero eventaully que hace que el formulario se presentará también, incluso cuando no estoy dispuesto a hacerlo
Entonces, ¿es cierto? y en caso afirmativo, ¿cómo puedo realizar alguna secuencia de comandos java dentro de a pero evito que el formulario se envíe automáticamente?

+0

Esto no es sólo un problema con IE. Esto también ocurre en Chrome. Según la respuesta de @ Pekka, agregar type = "button" resolvió esto para mí. –

Respuesta

33

Según W3schools, submit es la nueva acción predeterminada para button elementos en el IE 8:

Siempre especifique el atributo de tipo para el botón. El tipo predeterminado para Internet Explorer es "botón", mientras que en otros navegadores (y en la especificación W3C) es "enviar".

lo tanto, si no se especifica un tipo, el formulario se haya presentado en todos los navegadores, pero no IE 7.

esto debería funcionar:

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

quizás este enlace es relevante y responda mi pregunta: http://stackoverflow.com/questions/932653/how-to-prevent-buttons-from-submitting-forms – Spiderman

+0

sin problemas, funcionó. Solo para agregar el tipo = "botón". Ni siquiera tuve que devolver falso al final del comando. No se me ocurrió en la versión IE anterior (IE7) debe decir. – Spiderman

+0

lol Pekka, creo que lees mal la cita. W3Schools sugiere que en IE el tipo predeterminado es 'button', que es incorrecto para IE8. Eso significa que, en todos los navegadores, excepto en IE7 y versiones anteriores, un botón sin tipo enviará el formulario. –

2

A partir de los documentos es decir, para el button element:

Internet Explorer 8 y posterior. El valor predeterminado de este atributo depende del modo de compatibilidad del documento actual. En el modo IE8, el valor predeterminado es enviar. En otros modos de compatibilidad y versiones anteriores de Internet Explorer, el valor predeterminado es el botón.

La norma indica el tipo predeterminado es submit, las versiones anteriores de IE en mora incorrectamente a button

Cuestiones relacionadas