diperbarui pada Maret 2012.
Jadi, dua tahun setelah saya awalnya menjawab pertanyaan ini saya kembali untuk melihat bahwa itu telah berubah menjadi kekacauan besar. Saya merasa sudah saatnya saya kembali ke sana dan membuat jawaban saya benar karena ini adalah + yang paling banyak diterima.
Sebagai catatan, jawaban Titi salah karena bukan apa yang diminta oleh pengirim aslinya - benar bahwa mungkin untuk mereset formulir menggunakan metode reset asli (), tetapi pertanyaan ini mencoba untuk menghapus formulir yang tidak diingat. nilai yang akan tetap dalam formulir jika Anda meresetnya dengan cara ini. Inilah sebabnya mengapa diperlukan reset "manual". Saya berasumsi kebanyakan orang akhirnya dalam pertanyaan ini dari pencarian Google dan benar-benar mencari metode reset (), tetapi tidak bekerja untuk kasus khusus yang dibicarakan OP.
Jawaban asli saya adalah ini:
// not correct, use answer below
$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
Yang mungkin bekerja untuk banyak kasus, termasuk untuk OP, tetapi seperti yang ditunjukkan dalam komentar dan jawaban lain, akan menghapus elemen radio / kotak centang dari atribut nilai apa pun.
Jawaban yang lebih benar (tetapi tidak sempurna) adalah:
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
Menggunakan :text
, :radio
, dll penyeleksi sendiri dianggap praktik buruk oleh jQuery karena mereka akhirnya mengevaluasi ke *:text
yang membuatnya memakan waktu lebih lama dari seharusnya. Saya lebih suka pendekatan daftar putih dan berharap saya telah menggunakannya dalam jawaban asli saya. Bagaimanapun, dengan menentukan input
bagian pemilih, ditambah cache elemen formulir, ini akan membuatnya menjadi jawaban yang berkinerja terbaik di sini.
Jawaban ini mungkin masih memiliki beberapa kelemahan jika standar orang untuk elemen terpilih bukan merupakan opsi yang memiliki nilai kosong, tetapi ini pasti sama generiknya dengan yang akan didapat dan ini perlu ditangani berdasarkan kasus per kasus .
not()
jika form Anda memiliki input tersembunyi.