Una cosa que se suele hacer bastante en javascript es resetear un formulario, es decir, devolver el formulario a su valor inicial.
Con jquery esto es bastante fácil:
$('#Formulario').each (function(){
this.reset();
});
El tema está en que el código de arriba itera sobre cada elemento que está dentro de form, y llama al método “reset” del DOM de javascript (ojo que no se hace un $(this).reset()). La función “reset” en jquery no existe.
Sería más sencillo si se pudiera hacer $(“#Formulario”).reset() y listo, ¿verdad?. Bueno, por suerte crear esa función únicamente requiere que perdamos 1 minuto programando:
jQuery.fn.reset = function () {
$(this).each (function() { this.reset(); });
}
Ahora, una vez definido el código de arriba, ya podemos hacer un reset llamando a “reset”:
$("#Formulario").reset();
Tal vez usar “reset” es demasiado genérico para ser aplicado a cualquier objeto, aunque creo que tiene bastante sentido usar un nombre tan sencillo, pero quien quiera que lo renombre a “resetForm”.
Enlaces de interés:
- Getting started with jquery: interesante echarle un ojo
- Clearing form data: como borrar los datos en un formulario
English
23/07/2009 at 8:33 pm Permalink
Saludos,
Muy buen tip!
Seria bueno mejorarlo para que solo funcion para forms o elementos DOM que acepten reset.
Suerte, hasta luego.
03/11/2009 at 10:39 am Permalink
M es tuve fijando que si limpias o reseteas un form, y estas usando algun campo oculto que por default tiene value=0, entonces le quita el cero, lo peor de esto es que cuando cargo datos desde un grid al formulario y reseteo para crear uno nuevo desde formulario, se queda con el id del registro ultimo en el campo hidden.
Si saben de algunas solucion dejo mi correo: kdemon.r@gmail.com
Tengo una idea vaga de como podria hacerlo, pero podria funcionar.
Seria cuando este recorridendo los campos del formulario, validar que si es hidden entonces me ponga un valor por default como 0.
08/04/2010 at 1:08 am Permalink
@kdemon
Puedes seleccionar únicamente los campos que no sean hidden, o cambiar la función para que ignore los campos hidden:
jQuery.fn.reset = function () {
$(this).each (function() { if (!$(this).is(‘:hidden’)) this.reset(); });
}
NOTA: no lo he probado, pero en teoría debería funcionar
05/05/2010 at 8:47 pm Permalink
Si muy bien,
pero como puedo hacer para resetear solo dos Campos por ejemplo (Password y Password confirmación).
Saludos
06/05/2010 at 12:22 am Permalink
Muy fácil, metes el plugin de reset (que si te das cuenta son 2 lineas) y usas el selector de jQuery con esos dos campos y listo.
Es decir, metes esto en tu código:
jQuery.fn.reset = function () {
$(this).each (function() { this.reset(); });
}
Y luego, ya puedes usar el método “reset” sobre cualquier selector, por lo que harías:
$(‘input [name="passwd"], input [name="passwd2"]‘).reset();
Saludos!