Je veux effacer tous les champs de saisie et les zones de texte d'un formulaire. Cela fonctionne comme suit lorsqu'on utilise un bouton de saisie avec la classe reset
:
$(".reset").bind("click", function() {
$("input[type=text], textarea").val("");
});
Cela effacera tous les champs de la page, et pas seulement ceux du formulaire. À quoi ressemblerait mon sélecteur pour le formulaire dans lequel se trouve le bouton de réinitialisation ?
Pour jQuery 1.6+ :
$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.prop('checked', false)
.prop('selected', false);
Pour jQuery < 1.6 :
$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
Veuillez consulter cet article : https://stackoverflow.com/questions/680241/blank-out-a-form-with-jquery
Ou
$('#myform')[0].reset();
Comme jQuery [suggère][attr] :
Pour récupérer et modifier les propriétés DOM telles que l'état
checked
,selected
oudisabled
des éléments de formulaire, utilisez la méthode [.prop()][prop].
[prop] : https://api.jquery.com/prop/ [attr] : http://api.jquery.com/attr/
Pourquoi cela doit-il être fait avec un quelconque JavaScript ?
<form>
<!-- snip -->
<input type="reset" value="Reset"/>
</form>
http://www.w3.org/TR/html5/the-input-element.html#attr-input-type-keywords
J'ai d'abord essayé celle-là, mais elle n'efface pas les champs ayant des valeurs par défaut.
Voici donc un moyen de le faire avec jQuery :
$('.reset').on('click', function() {
$(this).closest('form').find('input[type=text], textarea').val('');
});