Bagaimana cara mencegah formulir mengirimkan menggunakan jquery?
Saya mencoba semuanya - lihat 3 opsi berbeda yang saya coba di bawah ini, tetapi semuanya tidak bekerja:
$(document).ready(function() {
//option A
$("#form").submit(function(e){
e.preventDefault();
});
//option B
$("#form").submit(function(e){
stopEvent(e);
});
//option C
$("#form").submit(function(){
return false;
});
});
Apa yang salah?
Perbarui - ini html saya:
<form id="form" class="form" action="page2.php" method="post">
<!-- tags in the form -->
<p class="class2">
<input type="submit" value="Okay!" />
</p>
</form>
Apa ada yang salah di sini?
return false;
setelah.submit()
bekerja untukku! Saya mengalami masalah yang samae.preventDefault();
kode tidak tercapai / dieksekusi.Jawaban:
Dua hal yang menonjol:
form
. Lebih baik merujuk ke tag dengan menjatuhkan #.Juga
e.preventDefault
sintaks JQuery yang benar, misalnyaOpsi C juga harus berfungsi. Saya tidak terbiasa dengan opsi B
Contoh lengkap:
sumber
$('#form')
menjadi$('.form')
untuk atribut kelas.Anda mungkin memiliki beberapa formulir di halaman dan menggunakan $ ('formulir') .mohon () menambahkan acara ini ke kemunculan pertama formulir di halaman Anda. Gunakan pemilih kelas sebagai gantinya, atau coba ini:
atau versi yang lebih baik:
sumber
Untuk mencegah default / mencegah penggunaan pengiriman formulir
Untuk menghentikan penggunaan acara bubbling
Untuk mencegah pengiriman formulir, 'return false' juga harus berfungsi.
sumber
event.stopPropagation()
danevent.preventDefault()
A.false
Nilai juga dapat ditularkan untuk handler sebagai singkatan untukfunction(){ return false; }
."Saya juga punya masalah yang sama. Saya juga telah mencoba apa yang telah Anda coba. Lalu saya mengubah metode saya untuk tidak menggunakan jquery tetapi dengan menggunakan atribut "onsubmit" di tag formulir.
Berhasil.
Tetapi, ketika saya mencoba untuk menempatkan nilai pengembalian palsu hanya di "thefunction ()", itu tidak menghalangi proses pengiriman, jadi saya harus meletakkan "return false;" dalam atribut onsubmit. Jadi, saya menyimpulkan bahwa aplikasi formulir saya tidak bisa mendapatkan nilai balik dari fungsi Javascript. Saya tidak tahu tentang itu.
sumber
false;
danreturn false;
. Anda harus memilikionsubmit="return thefunction();"
Saya memiliki masalah yang sama dan saya menyelesaikannya dengan cara ini (tidak elegan tetapi berfungsi):
Dan itu memiliki keuntungan, menurut pendapat saya, bahwa Anda dapat memulihkan situasi kapan saja Anda inginkan:
sumber
$('#form').removeAttr('onsubmit');
Lampirkan acara ke elemen kirim bukan ke elemen formulir. Misalnya di html Anda lakukan seperti ini
sumber
Anda cukup memeriksa apakah formulir itu valid jika ya jalankan ajukan logika jika tidak tampilkan kesalahan.
HTML
Javascript
sumber
Ketika saya menggunakan
<form>
tag tanpa atributid="form"
dan memanggilnya dengan nama tag-nya secara langsung di jquery berfungsi dengan saya.kode Anda dalam file html:
dan dalam skrip Jquery:
sumber
$('#form')
mencari elemen denganid="form"
.$('form')
mencari elemen bentuksumber
Anda lupa form id, dan itu berfungsi
sumber
dari sini: https://api.jquery.com/submit-selector/ (halaman menarik tentang jenis pengiriman)
sumber
Ini juga berfungsi dan mungkin sedikit lebih sederhana:
sumber
Menggunakan jQuery, Anda dapat melakukan hal berikut:
1- Gunakan formulir asli ajukan acara dengan tombol Kirim, sambil mencegah acara memecat, kemudian
2- Periksa formulir Properti yang valid Ini dapat diimplementasikan sebagai berikut:
1- HTML:
2- Javascript
sumber