mis à jour en Mars 2012.
Donc, deux ans après j'ai d'abord répondu à cette question je reviens de voir qu'il a pas mal tourné dans un grand désordre. Je sens qu'il est temps que j'y revenir et de faire ma réponse vraiment correct puisqu'il est le plus upvoted + acceptés.
Pour l'enregistrement, Titi réponse est erronée, car il n'est pas ce que l'affiche originale demandé - il est exact qu'il est possible de réinitialiser un formulaire à l'aide de la maternelle méthode reset (), mais cette question est d'essayer de libérer une forme de rappeler les valeurs qui restent dans le formulaire si vous réinitialisez de cette façon. C'est pourquoi un "manuel" de réinitialisation est nécessaire. Je suppose que la plupart des gens terminé à cette question à partir d'une recherche sur Google et sont vraiment à la recherche de la méthode reset (), mais il ne fonctionne pas pour le cas spécifique de l'OP parle.
Mon original de la réponse était celle-ci:
// not correct, use answer below
$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
Qui pourraient travailler pour un grand nombre de cas, y compris pour l'OP, mais comme souligné dans les commentaires et dans d'autres réponses, va clairement radio/checkbox éléments de tous les attributs de valeur.
Une plus correcte de la réponse (mais pas parfait) est:
function resetForm($form) {
$form.find('input:text, input:password, input:file, select, textarea').val('');
$form.find('input:radio, input:checkbox')
.removeAttr('checked').removeAttr('selected');
}
// to call, use:
resetForm($('#myform')); // by id, recommended
resetForm($('form[name=myName]')); // by name
À l'aide de l' :text
, :radio
, etc. les sélecteurs par eux-mêmes est considéré comme une mauvaise pratique par jQuery comme ils finissent par l'évaluation d' *:text
qui lui fait prendre beaucoup plus de temps qu'il ne le devrait. Je préfère la liste blanche de l'approche et souhaite que j'ai utilisé dans ma réponse originale à cette question. De toute façon, en spécifiant l' input
partie de la sélection, plus le cache de l'élément de formulaire, cela devrait le rendre le plus performant de réponse ici.
Cette réponse pourrait encore avoir quelques défauts si les gens par défaut pour sélectionner des éléments n'est pas une option qui a une valeur vide, mais il est certainement aussi générique que ça va se faire et elles doivent être traitées au cas par cas.