Salah satu cara untuk menghentikan pengiriman formulir adalah dengan mengembalikan false dari fungsi JavaScript Anda.
Ketika tombol kirim diklik, fungsi validasi dipanggil. Saya memiliki kasus dalam validasi formulir. Jika kondisi itu terpenuhi saya memanggil fungsi bernama returnToPreviousPage ();
function returnToPreviousPage() {
window.history.back();
}
Saya menggunakan JavaScript dan Dojo Toolkit .
Alih-alih kembali ke halaman sebelumnya, ia menyerahkan formulir. Bagaimana saya bisa membatalkan pengiriman ini dan kembali ke halaman sebelumnya?
javascript
html
forms
Muhammad Imran Tariq
sumber
sumber
Jawaban:
Anda bisa menggunakan nilai balik fungsi untuk mencegah pengiriman formulir
dan berfungsi seperti
Dalam hal Chrome 27.0.1453.116 m jika kode di atas tidak berfungsi, setel bidang returnValue parameter event handler ke false untuk membuatnya berfungsi.
Terima kasih Sam untuk berbagi informasi.
EDIT:
Terima kasih kepada Vikram untuk solusinya jika validateMyForm () mengembalikan false:
di mana validateMyForm () adalah fungsi yang mengembalikan false jika validasi gagal. Poin kuncinya adalah menggunakan nama acara. Kami tidak dapat menggunakan untuk egepreventDefault ()
sumber
false
tampaknya tidak berpengaruh; Chrome masih mengirimkan formulir. Sebagai contohonsubmit="return false;"
,. Namun, mengatur bidang parameter event handlerreturnValue
agarfalse
berfungsi bagi saya.validateMyForm()
memiliki kesalahanreturn false
tidak akan tercapai. Jadi ini mungkin gagal. Setelah berjam-jam, saya menemukan solusi yang berhasil dan diposting di bawah ini.Gunakan mencegah default
Dojo Toolkit
jQuery
JavaScript vanila
sumber
target
.Berikut ini berfungsi sampai sekarang (diuji di Chrome dan Firefox):
Di mana validateMyForm () adalah fungsi yang mengembalikan
false
jika validasi gagal. Poin kuncinya adalah menggunakan namaevent
. Kami tidak dapat menggunakan untuk misalnyae.preventDefault()
.sumber
Cukup gunakan sederhana
button
alih-alih tombol kirim. Dan panggil fungsi JavaScript untuk menangani pengiriman formulir:Fungsi dalam sebuah
script
tag:Anda juga bisa mencoba
window.history.forward(-1);
sumber
required
tidak akan berfungsi.Banyak cara sulit untuk melakukan hal yang mudah:
sumber
Semua jawaban Anda memberikan sesuatu untuk dikerjakan.
AKHIRNYA, ini bekerja untuk saya: (jika Anda tidak memilih setidaknya satu item kotak centang, itu memperingatkan dan tetap di halaman yang sama)
sumber
Berdasarkan jawaban @Vikram Pudi, kita juga bisa melakukan ini dengan Javascript murni
sumber
Saya akan merekomendasikan untuk tidak menggunakan
onsubmit
dan bukannya melampirkan acara dalam skrip.Kemudian gunakan
preventDefault()
(ataureturnValue = false
untuk browser lama).sumber
onsubmit
?JS
daripadaHTML
menggunakan atribut. Dengan begitu Anda tidak perlu bolak-balik sebanyak saat membaca kode orang lainKatakanlah Anda memiliki bentuk yang mirip dengan ini
Ini adalah javascript untuk fungsi confirmAction
Yang ini berfungsi di Firefox, Chrome, Internet Explorer (edge), Safari, dll.
Jika bukan itu masalahnya, beri tahu saya
sumber
preventDefault()
danreturnToPreviousPage()
sempurna dan elegan. Ini mengganggu operasi normal sama seperti Anda akan merancang penangkap pengecualian untuk bekerja. +1.Jawaban Hemant dan Vikram sama sekali tidak bekerja untuk saya di Chrome. The event.preventDefault (); skrip mencegah halaman mengirim tanpa mengabaikan lulus atau gagal validasi. Sebagai gantinya, saya harus memindahkan event.preventDefault (); ke dalam pernyataan if sebagai berikut:
Terima kasih kepada Hemant dan Vikram karena menempatkan saya di jalur yang benar.
sumber
Misalnya, jika Anda memiliki tombol kirim pada formulir, inorder untuk menghentikan propogasinya cukup tulis event.preventDefault (); dalam fungsi yang dipanggil saat mengklik tombol ajukan atau tombol masuk.
sumber
Lakukan saja ....
dan inilah JQuery Anda
sumber