Mart 2012'de güncellendi.
Bu soruyu ilk olarak yanıtladıktan iki yıl sonra, bunun büyük bir karmaşaya dönüştüğünü görmek için geri geldim. En geri alınan ve kabul edilen olduğu için ona geri dönüp cevabımı gerçekten doğru yapmanın zamanı geldiğini hissediyorum.
Kayıt için, Titi'nin cevabı orijinal posterin istediği gibi yanlış - yerel reset () yöntemini kullanarak bir formu sıfırlamanın mümkün olduğu doğru, ancak bu soru hatırlanan bir formu temizlemeye çalışıyor bu şekilde sıfırlarsanız formda kalacak değerler. Bu yüzden "manuel" sıfırlamaya ihtiyaç vardır. Çoğu insanın bu soruya bir Google aramasından geldiğini ve reset () yöntemini gerçekten aradığını varsayıyorum, ancak OP'nin bahsettiği özel durum için çalışmıyor.
Benim asıl cevabım şuydu:
// not correct, use answer below
$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
OP dahil olmak üzere birçok durumda işe yarayabilir, ancak yorumlarda ve diğer cevaplarda belirtildiği gibi, radyo / onay kutusu öğelerini herhangi bir değer özelliğinden temizler.
Daha doğru bir cevap (ama mükemmel değil):
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
Kullanılması :text
, :radio
onlar için değerlendirilmesi sonunda olarak kendileri tarafından, vb seçiciler jQuery tarafından kötü uygulama olarak kabul edilir *:text
çok daha uzun olması gerekenden daha sürebilir yapar. Beyaz liste yaklaşımını tercih ediyorum ve bunu orijinal cevabımda kullansaydım. Her neyse, input
seçicinin bir kısmını ve form öğesinin önbelleğini belirterek , bu onu burada en iyi performans gösteren cevap haline getirmelidir.
İnsanların seçili öğeler için varsayılan değeri boş değere sahip bir seçenek değilse, bu sorunun yine de bazı kusurları olabilir, ancak kesinlikle alacağı kadar geneldir ve bunun duruma göre ele alınması gerekir. .
not()
formunuzda gizli girdiler varsa gizli:.