Tenía un código de trabajo que podría restablecer mi formulario cuando hago clic en un botón de reinicio. Sin embargo, después de que mi código se hace más largo, me doy cuenta de que ya no funciona.
<div id="labels">
<table class="config">
<thead>
<tr>
<th colspan="4"; style= "padding-bottom: 20px; color:#6666FF; text-align:left; font-size: 1.5em">Control Buttons Configuration</th>
</tr>
<tr>
<th>Index</th>
<th>Switch</th>
<th>Response Number</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<form id="configform" name= "input" action="#" method="get">
<tr><td style="text-align: center">1</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" value="" id="number_one"></td>
<td><input style="background: white; color: black;" type="text" id="label_one"></td>
</tr>
<tr>
<td style="text-align: center">2</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id = "number_two" value=""></td>
<td><input style="background: white; color: black;" type="text" id = "label_two"></td>
</tr>
<tr>
<td style="text-align: center">3</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id="number_three" value=""></td>
<td><input style="background: white; color: black;" type="text" id="label_three"></td>
</tr>
<tr>
<td style="text-align: center">4</td>
<td><img src= "static/switch.png" height="100px" width="108px"></td>
<td id="small"><input style="background: white; color: black;" type="text" id="number_four" value=""></td>
<td><input style="background: white; color: black;" type="text" id="label_three"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" id="configsubmit" value="Submit"></td>
</tr>
<tr>
<td><input type="reset" id="configreset" value="Reset"></td>
</tr>
</form>
</tbody>
</table>
</div>
Y mi jQuery:
$('#configreset').click(function(){
$('#configform')[0].reset();
});
¿Hay alguna fuente que deba incluir en mis códigos para que el .reset()
método funcione? Anteriormente estaba usando:
<script src="static/jquery.min.js">
</script>
<script src="static/jquery.mobile-1.2.0.min.js">
</script>
y el .reset()
método estaba funcionando.
Actualmente estoy usando
<script src="static/jquery-1.9.1.min.js"></script>
<script src="static/jquery-migrate-1.1.1.min.js"></script>
<script src="static/jquery.mobile-1.3.1.min.js"></script>
¿Podría ser una de las razones?
javascript
jquery
forms
reset
yvonnezoe
fuente
fuente
Respuestas:
puede intentar usar el enlace de referencia trigger ()
fuente
http://jsfiddle.net/8zLLn/
Ponlo en el violín JS. Trabajó según lo previsto.
Entonces, ninguno de los problemas antes mencionados tiene la culpa aquí. ¿Quizás tienes un problema de identificación conflictivo? ¿Se está ejecutando realmente el clic?
Editar: (porque soy un saco triste sin la capacidad de comentario adecuada) No es un problema directamente con su código. Funciona bien cuando lo saca del contexto de la página que está utilizando actualmente, por lo que, en lugar de ser algo con los datos de formulario jQuery / javascript y atribuidos particulares, tiene que ser algo más. Comenzaría a bisecar el código y trataría de encontrar dónde está yendo. Quiero decir, solo para 'asegurarme', supongo que podrías ...
en la función de clic y asegúrese de que esté dirigido a la forma correcta ...
y si es así, tiene que ser algo que no esté en la lista aquí.
edite la parte 2: una cosa que podría intentar (si no está apuntando correctamente) es usar "input: reset" en lugar de lo que está usando ... también, sugeriría porque no es el objetivo lo que funciona incorrectamente para averiguarlo a qué se dirige el clic real. Simplemente abra las herramientas de Firebug / Developer, lo que tenga, agregue
y mira lo que aparece. y luego podemos ir desde allí.
fuente
$('#ptest').html("clicked reset")
en el clic (función () {}); donde debería mostrar "restablecer[0]
selecciona el primer elemento. Pero en jQuery, selecciona el html real del elemento. Entonces, le[0]
está dando el html, que le permite llamar al html, no al jQuery, método llamadoreset
. Consulte la respuesta de @kevin a continuación para obtener más información.De acuerdo con esta publicación aquí , jQuery no tiene
reset()
método; pero JavaScript nativo sí. Entonces, convierta el elemento jQuery en un objeto JavaScript usando:fuente
Esta es una de esas cosas que en realidad es más fácil de hacer en Javascript vainilla que jQuery. jQuery no tiene un
reset
método, pero el Elemento de formulario HTML sí, por lo que puede restablecer todos los campos en un formulario como este:Si hace esto a través de jQuery (como se ve en otras respuestas aquí :)
$('#configform')[0].reset()
,[0]
está obteniendo el mismo elemento DOM de formulario que obtendría directamentedocument.getElementById
. Sin embargo, el último enfoque es más eficiente y simple (ya que con el enfoque jQuery primero obtienes una colección y luego tienes que buscar un elemento de ella, mientras que con el Javascript de vainilla solo obtienes el elemento directamente).fuente
Un botón de reinicio no necesita ningún script (o nombre o id):
y tu estas listo. Pero si realmente debe usar un script, tenga en cuenta que cada control de formulario tiene una propiedad de formulario que hace referencia al formulario en el que se encuentra, por lo que puede hacer lo siguiente:
Pero un botón de reinicio es una opción mucho mejor.
fuente
¡Finalmente he resuelto el problema! @RobG tenía razón sobre la
form
etiqueta y latable
etiqueta. Laform
etiqueta debe colocarse fuera de la mesa. con ese,funciona sin la necesidad de jquery o cualquier otra cosa. simplemente haga clic en el botón y tadaa ~ se restablece todo el formulario;) genial!
fuente
form
etiqueta se había cerrado automáticamente al principio deltbody
, excluyendo los elementos de entrada.Yo uso este código simple:
fuente
Mediante el uso de la función jquery .closest (elemento) y .find (...) .
Obteniendo el elemento padre y buscando al hijo .
Finalmente, haga la función necesaria.
fuente
$("#form").find("input[type=text], textarea").val("");
lo hice de esta maneraLa primera línea restablecerá las entradas del formulario
El segundo restablecerá select2
Opcional: puede usar esto si tiene diferentes tipos registrados con diferentes eventos
fuente
Es posible un restablecimiento rápido de los campos del formulario con esta función de restablecimiento de jQuery.
cuando obtuviste una respuesta exitosa, entonces dispara debajo del código.
$(selector)[0].reset();
fuente
Simplemente puede agregar un tipo de entrada = restablecer con una id = resetform como esta
luego con jquery simplemente usa la función .click () en el elemento con id = resetform de la siguiente manera
y el formulario se restablece Nota: También puede ocultar el botón de reinicio con id = resetform usando su CSS
fuente
Aquí hay una solución simple con Jquery. Funciona a nivel mundial. Echa un vistazo al código.
Agregue una clase clara a un botón en cada forma que necesite para restablecerlo. Por ejemplo:
fuente
jQuery no tiene
reset()
método; pero JavaScript nativo sí. Entonces, convierta el elemento jQuery en un objeto JavaScript usando:Podemos simplemente usar el código Javascript
fuente
La forma más simple en que puedo pensar que es robusta. Colocar dentro de la etiqueta del formulario.
fuente
Puedes usar lo siguiente.
Luego borre el formulario:
fuente
Tu código debería funcionar. Asegúrate de que
static/jquery-1.9.1.min.js
exista. Además, puede intentar volver astatic/jquery.min.js
. Si eso soluciona el problema, entonces has identificado el problema.fuente
configform
). Deberías investigar un poco usando la consola. Primer intento$
. Si está usando Chrome, al escribir$
en la consola se activará una lista sensible al contexto si se carga jQuery. Si escribe$
y presiona Retorno, se evaluará a una función si se carga jQuery. Siguiente intento$("#configform")
. Haga clic derecho en el resultado y seleccioneReveal in Elements panel
.