Estoy tratando de restablecer algunos formularios con jQuery, pero estoy teniendo algunos problemas. Aparte de las soluciones que implican la escritura de funciones o plugins personalizados, sigo encontrando una y otra vez que el método reset no es una parte estándar de jQuery pero es una parte del estándar de Javascript.

De todos modos, mi primer acercamiento fue ir con

$("#theForm").reset();

donde el formulario id=»theForm».

Que no funciona, obviamente, porque se supone que reset() era una parte de jQuery.

La siguiente cosa que probé fue

document.getElementById(theForm).reset();

Que no funciona tampoco. Soy nuevo en jQuery así que no estoy seguro de si puedo mezclar normal Javascript con jQuery. Debo sonar como un idiota por decir esto.

De todos modos, Después de hacer un poco más de investigación he encontrado una y otra vez que podía usar el reset() en jQuery al hacer estas…

$("#theForm")[0].reset();

o

$("#theForm").get(0).reset();

En cada artículo que involucra a estos dos fragmentos de todos en los comentarios había conseguido trabajo.

Excepto a mí.

El error de la consola me dice que lo que he escrito no existe. He comprobado todos los de mi código y no hay ninguna otra instancia de la palabra «reset», por lo que no puede ser que tampoco.

De todos modos, estoy perplejo.

Enviar el formulario, no hay nada malo con el javascript (al menos algunos de ellos).

OriginalEl autor user2426162 | 2013-05-27

6 Comentarios

  1. 26

    Solución para el problema original en este hilo

    De un formulario HTML como este:

    <form id="theForm">
    </form>

    Cuando se utiliza document.getElementById("theForm").reset(), si usted está recibiendo un error de js diciendo

    reset() no es una función

    la razón podría ser un elemento que ha reset como name o id. Me enfrentaba a la misma cuestión.

    Nomenclatura de cualquier elemento como reset anula reset() función.

    Gran. Yo estaba usando <input type="button" value = "Clear Form" id = "reset" /> a cambiar a <input type="button" value = "Clear Form" id = "formReset" /> trabajado 🙂

    OriginalEl autor

  2. 8

    Este:

    $("#theForm")[0].reset();

    funciona bien. Ver aquí: http://jsfiddle.net/tZ99a/1/

    Así, tiene que haber algo mal con la forma, o con la forma en que desea adjuntar la secuencia de comandos para el botón.

    La forma se parece a esto. <input type="text" id="theForm"> Será el hecho de que esta y otras formas, que todos están bajo una sola <> etiqueta afectar el reset?
    Uh? El id va en la forma, no en el de entrada. Creo que se están mezclando la «forma» y la «entrada» de los conceptos.
    Tengo varias entradas en una sola etiqueta. Pero por alguna razón si me hacen todos los códigos de formulario a continuación, funciona muy extrañamente.
    Que no tiene nada que ver con ella. Ver actualizado el Violín. Por cierto, ¿por qué no publicar el código correspondiente ahí, así que podemos ver lo que falla? Hasta el momento, estamos adivinando.
    Gracias! Que funcionaba perfecto.

    OriginalEl autor

  3. 1

    si "theForm" es un ID, necesitamos utilizar $('#theForm')[0] ?
    Creo que es un mal hábito.
    Si hay varios formularios en una página HTML, el uso de nombres. Y si utiliza el ID debe ser único.

    Sería genial si usted puede proporcionar su código HTML aquí 🙂

    OriginalEl autor

  4. 0

    … Creo que hay un par de cosas que están pasando aquí.

    1. Como Diego, señaló en su respuesta, $('#theForm')[0].reset(); funciona muy bien.
    2. El segundo ejemplo se trató de: document.getElementById(theForm).reset(); no funciona debido a que javascript se va a pensar que estás usando una variable llamada «theForm» — si ese fuera el caso, entonces el valor de la variable tendría que ser la cadena que representa el id de su forma… algo así como var theForm = 'theForm'; y que pueden llegar a ser realmente confuso realmente rápido. Sospecho que lo que quería probar era: document.getElementById('theForm').reset(); — que funciona swimmingly y es básicamente lo mismo que el código de #1.
    3. Estos ejemplos son todas suponiendo que el HTML es algo así como: <form id="theForm"> ... </form> — el id «theForm» debe estar en la etiqueta de formulario, no en una etiqueta de entrada dentro de la forma.

    He creado un violín que muestra estas cosas de trabajo: http://jsfiddle.net/boliver/ZDQxE/

    OriginalEl autor

  5. 0

    Por favor verifique que usted no tiene un elemento de formulario llamado «reset». Si es así, cambie el nombre y .método reset() va a trabajar. De lo contrario el documento.getElementById(«formId»).reset seleccione el elemento de formulario con el nombre de ‘reset’, por eso el método reset() no puede estar trabajando. Yo recibirá un mensaje de error como ‘el objeto no es una función».

    OriginalEl autor

  6. 0

    El problema es más probable que la forma del botón de restablecimiento de identificación se establece en «reset», por lo tanto el mensaje de error.

    Yo tenía el mismo problema y, a continuación, finalmente descubrió y cambió mi forma de:

     
    form action="bla" method="post" id="miformulario"> 
    ... 
    
    /form> 
    
    

    Cambiar el botón de reset de identificación que hizo el truco para mí.

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here