Prueba esto:
var button = $('<button type="button"/>');
Ahora, como es el caso, el tipo predeterminado para los botones es "botón" de todos modos en el IE (7, al menos, no está seguro acerca de las normas 8-mode). Sin embargo, lo anterior debería funcionar. Me encontré con esto el otro día. IE le permite proporcionar el tipo de letra en la sintaxis del elemento al crear elementos, y parece que jQuery está pasando su argumento directamente a la API DOM de bajo nivel aquí.
Ah, y funciona bien en FF y Chrome también.
edición — bien qué diferencia hace un año, ¿eh? No puedo conseguir que ese mecanismo funcione para mí ahora con jQuery 1.4.4 o jQuery 1.5.x. La buena noticia es que jQuery 1.6 parece funcionar de la manera que el OP quería: mediante la configuración de "tipo" de una manera más normal como jQuery.
Lo que hace parece que funciona, sin embargo, es para llamar directamente ".setAttribute()" en el elemento. Por lo tanto:
var b = $('<button/>');
b[0].setAttribute('type', 'button');
hace no lanzar una excepción, y lo hace establecer el atributo "type" correctamente. (Eso es un poco extraño, ya que Microsoft claramente documenta "tipo" como de solo lectura.) El cambio en 1.6 parece estar en la misma línea. Anteriormente, la biblioteca verificaba "tipo" y explícitamente no permitía que se estableciera en elementos que ya estaban en el DOM, pero procedía a intentar establecerlo como un atributo simple para un elemento que no estaba en el DOM. Ahora, el código 1.6 llama a ".setAttribute()" para establecer "type", que (por razones desconocidas para mí) funciona bien.
Hace un '
En realidad [botón] (http://www.w3.org/TR/html401/interact/forms.html#h-17.5) se predetermina a type = submit. El botón – Tgr
tiene un atributo de tipo, tipo = botón, tipo = enviar y escribe = restablecer – salmane