jueves, 24 de enero de 2013

Limpiar todos los campos de un formulario con JQuery



En ocasiones, tenemos formularios a los que queremos aplicarvalidación a algunos campos, y dependiendo de la acción tomada, podemos necesitar vaciar todo el contenido del formulario que el usuario haya rellenado. Si tenemos un formulario de 3 o 4 campos, podemos hacerlo a mano de forma rápida, del modo:
$(”#miInput”).val(”);
Pero si estamos trabajando con un formulario grande, con varios tipos de campos, algo tan simple nos puede tomar mucho tiempo.Buscando por internet y hechandole un ratillo, me he creado esta función (he comentado todas las líneas para que todo esté más claro):
function limpiaForm(miForm) {
// recorremos todos los campos que tiene el formulario
$(’:input’, miForm).each(function() {
var type = this.type;
var tag = this.tagName.toLowerCase();
//limpiamos los valores de los campos…
if (type == ‘text’ || type == ‘password’ || tag == ‘textarea’)
this.value = “”;
// excepto de los checkboxes y radios, le quitamos el checked
// pero su valor no debe ser cambiado
else if (type == ‘checkbox’ || type == ‘radio’)
this.checked = false;
// los selects le ponesmos el indice a -
else if (tag == ’select’)
this.selectedIndex = -1;
});
}
La función recibe un objeto de JQuery que representa el formulario que queremos vaciar. Supongamos que el formulario tiene como id “Formulario1″, lo haríamos de la siguiente forma:
limpiaForm($(”#Formulario1″));
… y todo el formulario limpio.
Incluso puede ser más fácil, si sólo tuviéramos inputs de texto, y algúntextarea, podríamos hacer:
$(”#Formulario1 input, #Formulario1 textarea”).val(”);
Otra clara demostración de lo mal acostumbrado que nos tiene JQuery!
Pero aún más simple…
$(”#Formulario1″)[0].reset();

http://oldblog.jesusyepes.com/jquery/limpiar-todos-los-campos-de-un-formulario-con-jquery/

No hay comentarios.:

Publicar un comentario