Resetear un formulario con jquery

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:

Trackback URL

, , , ,

29 Comments on "Resetear un formulario con jquery"

  1. Ralph Moran
    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.

  2. kdemon
    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.

  3. Pau Sanchez
    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

  4. Pedro Julio
    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

  5. Pau Sanchez
    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!

Trackbacks

  1. [...] Resetear un formulario con jQuery [...]

Hi Stranger, leave a comment:

ALLOWED XHTML TAGS:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to Comments