J'avais un code de travail qui pouvait réinitialiser mon formulaire lorsque je cliquais sur un bouton de réinitialisation. Cependant, après que mon code soit plus long, je me rends compte qu'il ne fonctionne plus.
<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>
Et ma jQuery:
$('#configreset').click(function(){
$('#configform')[0].reset();
});
Y a-t-il une source que je devrais inclure dans mes codes pour que la .reset()
méthode fonctionne? Auparavant, j'utilisais:
<script src="static/jquery.min.js">
</script>
<script src="static/jquery.mobile-1.2.0.min.js">
</script>
et la .reset()
méthode fonctionnait.
Actuellement j'utilise
<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>
Cela pourrait-il être l'une des raisons?
javascript
jquery
forms
reset
yvonnezoe
la source
la source
Réponses:
vous pouvez essayer d'utiliser le lien de référence trigger ()
la source
http://jsfiddle.net/8zLLn/
Mettez-le dans le violon JS. A fonctionné comme prévu.
Ainsi, aucun des problèmes susmentionnés n'est en cause ici. Vous rencontrez peut-être un problème d'identification conflictuel? Le clic s'exécute-t-il réellement?
Edit: (parce que je suis un triste sac sans capacité de commentaire appropriée) Ce n'est pas un problème directement avec votre code. Cela fonctionne bien lorsque vous le sortez du contexte de la page que vous utilisez actuellement, donc, au lieu d'être quelque chose avec les données de formulaire jQuery / javascript et attribuées particulières, cela doit être autre chose. Je commençais à bissecter le code autour et j'essayais de trouver où cela se passait. Je veux dire, juste pour 'être sûr', je suppose que tu pourrais ...
dans la fonction de clic et assurez-vous qu'il cible le bon formulaire ...
et si c'est le cas, ce doit être quelque chose qui n'est pas répertorié ici.
modifier la partie 2: Une chose que vous pouvez essayer (si elle ne le cible pas correctement) est d'utiliser "input: reset" au lieu de ce que vous utilisez ... aussi, je suggérerais parce que ce n'est pas la cible qui ne fonctionne pas correctement pour le savoir ce que le clic réel cible. Il suffit d'ouvrir les outils Firebug / Developer, qu'avez-vous, lancez-les
et voyez ce qui apparaît. puis nous pouvons partir de là.
la source
$('#ptest').html("clicked reset")
dans le clic (fonction () {}); où il devrait montrer "clicked reset" mais il ne s'est pas présenté[0]
sélectionne le premier élément. Mais dans jQuery, il sélectionne le html réel de l'élément. Donc,[0]
vous donne le html, qui vous permet d'appeler la méthode html, pas jQuery, appeléereset
. Voir la réponse de @kevin ci-dessous pour plus d'informations.Selon cet article ici , jQuery n'a pas de
reset()
méthode; mais JavaScript natif le fait. Donc, convertissez l'élément jQuery en objet JavaScript en utilisant:la source
C'est l'une de ces choses qui est en fait plus facile à faire en vanilla Javascript que jQuery. jQuery n'a pas de
reset
méthode, mais l'élément de formulaire HTML en possède, vous pouvez donc réinitialiser tous les champs d'un formulaire comme celui-ci:Si vous le faites via jQuery (comme on le voit dans d'autres réponses ici:)
$('#configform')[0].reset()
, le[0]
récupère le même élément de formulaire DOM que vous obtiendriez directement viadocument.getElementById
. Cette dernière approche est à la fois plus efficace et plus simple (car avec l'approche jQuery, vous obtenez d'abord une collection, puis vous devez en extraire un élément, tandis qu'avec le Javascript vanilla, vous obtenez simplement l'élément directement).la source
Un bouton de réinitialisation n'a besoin d'aucun script (ou nom ou identifiant):
et tu as fini. Mais si vous devez vraiment utiliser un script, notez que chaque contrôle de formulaire a une propriété de formulaire qui fait référence au formulaire dans lequel il se trouve, vous pouvez donc faire:
Mais un bouton de réinitialisation est un bien meilleur choix.
la source
J'ai enfin résolu le problème !! @RobG avait raison sur le
form
tag et letable
tag. laform
balise doit être placée à l'extérieur de la table. avec ça,fonctionne sans avoir besoin de jquery ou d'autre chose. cliquez simplement sur le bouton et tadaa ~ l'ensemble du formulaire est réinitialisé;) génial!
la source
form
tag a été automatiquement fermé au début dutbody
, à l'exclusion des éléments d'entrée.J'utilise ce code simple:
la source
En utilisant la fonction jquery .closest (élément) et .find (...) .
Obtenir l' élément parent et chercher l' enfant .
Enfin, faites la fonction nécessaire.
la source
$("#form").find("input[type=text], textarea").val("");
je l'ai fait de cette façonLa première ligne réinitialisera les entrées du formulaire
Le second réinitialise select2
Facultatif: vous pouvez l'utiliser si vous avez différents types enregistrés avec différents événements
la source
Une réinitialisation rapide des champs du formulaire est possible avec cette fonction de réinitialisation jQuery.
lorsque vous avez obtenu une réponse positive, lancez le code ci-dessous.
$(selector)[0].reset();
la source
Vous pouvez simplement ajouter un type d'entrée = reset avec un id = resetform comme celui-ci
puis avec jquery vous utilisez simplement la fonction .click () sur l'élément avec le id = resetform comme suit
et le formulaire se réinitialise Remarque: Vous pouvez également masquer le bouton de réinitialisation avec id = resetform en utilisant votre css
la source
Voici une solution simple avec Jquery. Cela fonctionne globalement. Jetez un oeil sur le code.
Ajoutez une classe claire à un bouton sous toutes les formes dont vous avez besoin pour le réinitialiser. Par exemple:
la source
jQuery n'a pas de
reset()
méthode; mais JavaScript natif le fait. Donc, convertissez l'élément jQuery en objet JavaScript en utilisant:Nous pouvons simplement utiliser du code Javascript
la source
La façon la plus simple de penser que c'est robuste. Placer dans la balise de formulaire.
la source
Vous pouvez utiliser ce qui suit.
Effacez ensuite le formulaire:
la source
Votre code devrait fonctionner. Assurez-vous qu'il
static/jquery-1.9.1.min.js
existe. Vous pouvez également essayer de revenir àstatic/jquery.min.js
. Si cela résout le problème, vous avez identifié le problème.la source
configform
). Vous devriez faire quelques recherches en utilisant la console. Essayez d'abord$
. Si vous utilisez Chrome, taper$
dans la console activera une liste contextuelle si jQuery est chargé. Si vous tapez$
et appuyez sur retour, il évaluera une fonction si jQuery est chargé. Essayez ensuite$("#configform")
. Faites un clic droit sur le résultat et sélectionnezReveal in Elements panel
.