/ / La creación de <button> con jQuery ignora el atributo de tipo - jquery, html, dom-manipulation

La creación de <button> con jQuery ignora el atributo de tipo - jquery, html, dom-manipulation

Estoy tratando de crear un par de botones usando jQuery, con comandos como este:

$("<button></button>", { type: "reset", id: "reset", name: "reset" })
.text("Reset all fields").appendTo(target);

Esto funciona bastante bien, excepto que los botones se crean sin el type atributo.

Esto es lo que quiero:

<button type="reset" id="reset" name="reset">Reset all fields</button>

pero entiendo esto

<button id="reset" name="reset">Reset all fields</button>

es decir, el type="reset" Está perdido. He intentado agregarlo por separado con .attr(), pero no ayuda. El atributo simplemente se ignora. ¿Qué me estoy perdiendo aquí?

Estoy usando jQuery 1.4.4. Como se señaló en los comentarios, esto funciona en la última versión de jQuery, pero esa no es la que está en nuestro sistema y no sé qué cosas podrían romperse si nos actualizamos, así que preferiría resolver esto con la versión existente.

Respuestas

3 para la respuesta № 1

¿Has considerado solo hacer

 $("<button type="reset" id="reset" name="reset">Reset all fields</button>").appendTo(target);

3 para la respuesta № 2

La razón por la que esto no funciona es que la type el atributo de un botón HTML es de solo lectura una vez que se crea el botón.

Esto significa que no puede cambiar el tipo de botón luego y, como Sam señaló en su respuesta, su mejor opción es agregar el tipo al botón al mismo tiempo que crea el botón.

$("<button type="reset"></button>");

Si observa su consola de errores mientras está "desarrollando", detectará este tipo de errores mucho más rápido.

Para el código que proporcionó, la consola de errores de Firefox nos dice:

Error: uncaught exception: type property can"t be changed