Effacer les champs de formulaire avec jQuery
Je veux effacer toutes les entrées et les champs textarea dans un formulaire. Il fonctionne comme suit lors de l'utilisation d'un bouton d'entrée avec le reset
classe:
$(".reset").bind("click", function() {
$("input[type=text], textarea").val("");
});
Cela va effacer tous les champs sur la page, pas seulement celles de la forme. Comment mes sélecteur de ressembler juste pour la forme réelle bouton de réinitialisation vit?
- Découvrez la réponse par Paolo Bergantino stackoverflow.com/questions/680241/blank-out-a-form-with-jquery
- Plus détaillée de la méthode de réinitialiser un formulaire ici.
Vous devez vous connecter pour publier un commentaire.
input[type=password]
champs.$(this).closest('form')[0].reset()
est beaucoup plus simple et couvre toutes les entrées/sélectionne.element.val('')
, que tout changement de liaisons pour les éléments ne sera pas déclenchée. Vous devez également ajouter un.trigger('change')
ou.change()
appeler ainsi. ex:element.val('').trigger('change');
Pour jQuery 1.6+:
Pour jQuery < 1.6:
Veuillez voir ce post:
La réinitialisation d'un multi-étape de formulaire avec jQuery
Ou
Que jQuery suggère:
$(':input').not(':button, :submit, :reset, :hidden').removeAttr('checked').removeAttr('selected').not(':checkbox, select').val('').removeAttr('value');
. Il va supprimer les valeurs par défaut (c'est à direvalue="something"
, mais pas pour les cases à cocher ou les sélectionne.$(':input').not(':button, :submit, :reset, :hidden').removeAttr('checked').removeAttr('selected').not(':checkbox, :radio, select').val('');
(basé sur Jeppe Mariager-Lam commentaire)val()
. Mais,reset()
est originaire méthode DOM et pas de méthode jQuery, si vous chercher de la première et de l'appeler. Sans[0]
,reset()
renvoie une erreur. Voir ce post:questions/7183704/jquery-id-selector-id-returns-array
.text('').removeAttr('value')
supprimer le textarea & entrée par défaut les valeurs initiales.Une raison quelconque, ce ne doit pas être utilisé?
form
, vous le faites mal. Vous auriez raison si le sélecteur estform
, mais c'est plutôt le sélecteur d'ID#form
.$("form").trigger('reset');
vraiment déclenche le "reset" de l'événement sur TOUS les<form>
éléments. Dans la plupart des cas, il peut être mauvais. Mais$("#form").trigger('reset');
(indiqué dans la réponse originale à cette question) déclenche seulement le "reset" de l'événement sur l'élément qui a la "forme" set id (accessible avec le#form
sélecteur). Et oui, un id doit être utilisé qu'une seule fois,c'est pourquoi ils l'appellent "id", parce qu'il identifie un élément de manière non équivoque.Cela ne peut pas gérer les cas où la forme des champs de saisie ont non vide des valeurs par défaut.
Quelque chose comme devrait fonctionner
si vous utilisez les sélecteurs et mettre les valeurs à des valeurs vides, ce n'est pas la réinitialisation de la forme, c'est d'en faire tous les champs vides. Reset est de rendre le formulaire comme c'était avant tout de modifier les actions de l'utilisateur après le chargement de la forme de côté de serveur. Si il y a une entrée avec le nom "nom d'utilisateur" et que le nom d'utilisateur a été pré-rempli à partir du serveur, la plupart des solutions sur cette page vous permettra de supprimer cette valeur de l'entrée, pas à zéro à la valeur de comment c'était avant des changements. Si vous devez réinitialiser le formulaire, utilisez ceci:
si vous avez besoin de ne pas réinitialiser la forme, mais de remplir toutes les entrées avec une certaine valeur, par exemple la valeur est vide, alors vous pouvez utiliser la plupart des solutions par rapport aux autres commentaires.
Simple, mais fonctionne comme un charme.
Si quelqu'un est encore la lecture de ce fil, voici la solution la plus simple n'utilisant pas de jQuery, mais simple JavaScript. Si vos champs d'entrée sont à l'intérieur d'un formulaire en JavaScript simple commande de réinitialisation:
Plus à ce sujet ici:
http://www.w3schools.com/jsref/met_form_reset.asp
Cheers!
Pourquoi a-t-il besoin d'être fait avec n'importe quel JavaScript?
http://www.w3.org/TR/html5/the-input-element.html#attr-input-type-keywords
Voici une façon de le faire avec jQuery, alors:
.live()
est obsolète, et aussi c'est lent/inutiles. Vous pouvez simplement utiliser.bind()
ou.on()
.J'ai eu plus facile astuce pour réinitialiser le formulaire
ou
Si vous souhaitez vider toutes les zones de saisie, quel que soit son type, puis c'est une minute étape par
Avec Javascript, vous pouvez le faire simplement avec cette syntaxe
getElementById("your-form-id").reset();
vous pouvez également utiliser jquery par l'appel de la fonction de réinitialisation de cette façon
$('#your-form-id')[0].reset();
Rappelez-vous de ne pas oublier
[0]
. Vous obtiendrez l'erreur suivante siJQuery fournit également un événement vous pouvez utiliser
J'ai essayé et ça fonctionne.
Remarque: il est important de remarquer que ces méthodes n'réinitialiser votre formulaire à leur valeur initiale définie par le serveur au chargement de la page. Cela signifie que si votre entrée est réglé sur la valeur "valeur de consigne" avant que vous avez fait un changement aléatoire, le champ sera remis à la même valeur après la réinitialisation de la méthode est appelée.
Espère que cela aide
où
editPOIForm
est leid
attribut de votre formulaire.#editPOIForm
et donc la.each()
méthode n'a pas de sens. Même si vous avez ajouté cette id de multiples formes il ne retourne jamais l'un d'entre eux.$('#editPOIForm').get(0).reset();
Pourquoi ne pas utiliser
document.getElementById("myId").reset();
? c'est simple et assezTesté et vérifié code:
Javascript doit être inclus dans
$(document).ready
et il doit être avec votre logique.Plus facile et la meilleure solution est-
$("#form")[0].reset();
N'utilisez pas ici -
$(this)[0].reset();
Disons, si vous souhaitez effacer les champs et à l'exception de accountType,dans le temps moyen zone de liste déroulante sera remis à une valeur particulière,j'.e 'Tous'.Champs restants doit être réinitialisé à vide je.e zone de texte.Cette approche sera utilisée pour la compensation des domaines particuliers comme notre exigence.
J'utilise ceci :
Et voici mon bouton:
Utiliser ce Code Où vous voulez l'Appeler Normal de la Fonction de Réinitialisation par jQuery
Et Écrire cette Fonction, le Site de jQuery sur le Document Prêt
frmID
est l'identification de la formeOnSuccess
de l'opération que nous appelons la fonction JavaScript avec le nom "ClearInput
"si vous le faites à la fois de ces droits, alors vous ne serez pas en mesure d'arrêter de travailler...
Si je veux effacer tous les champs à l'exception de accountType..l'Utilisation suivantes
le code que je vois ici et sur d'autres AINSI en question semble incomplète.
De la réinitialisation d'un formulaire de réglage, les valeurs d'origine de l'HTML, donc j'ai mis cela ensemble pour un petit projet que je faisais basé sur le code ci-dessus:
S'il vous plaît laissez-moi savoir si je suis absent quelque chose ou que quelque chose peut être amélioré.
Aucun des travaux ci-dessus sur un cas simple lorsque la page contient un appel à un contrôle utilisateur web qui implique IHttpHandler le traitement de la demande (captcha).
Après l'envoi de la requsrt (pour le traitement de l'image) le code ci-dessous ne sont pas clairement les champs du formulaire (avant l'envoi de la HttpHandler demande ) tout fonctionne correctement.
J'ai écrit un universel plugin jQuery:
JS:
HTML:
Le code suivant effacer tout le formulaire et les champs seront vides. Si vous souhaitez effacer seulement une forme particulière si la page est d'avoir plus d'un formulaire, merci de mentionner le code ou de classe de la forme
Certains d'entre vous se plaignent que les radios et tels sont effacées de défaut "à vérifier" l'état... Tout ce que vous avez à faire est d'ajouter :radio, case sélecteurs .pas et le problème est résolu.
Si vous ne pouvez pas obtenir toutes les autres fonctions de réinitialisation de travailler, ce qui.
Adapté de ngen la réponse de
Ajouter caché bouton de réinitialisation comme suit
$('form').submit(function() {
});