Saya punya formulir, dengan 2 tombol
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
Saya menggunakan tombol jQuery UI pada mereka juga, cukup seperti ini
$('button').button();
Namun, tombol pertama juga mengirimkan formulir. Saya akan berpikir bahwa jika tidak ada type="submit"
, itu tidak akan.
Jelas saya bisa melakukan ini
$('button[type!=submit]').click(function(event) { event.stopPropagation(); });
Tetapi apakah ada cara saya bisa menghentikan tombol kembali dari mengirimkan formulir tanpa intervensi JavaScript?
Sejujurnya, saya menggunakan tombol hanya supaya saya bisa menatanya dengan jQuery UI. Saya mencoba memanggil button()
tautan dan itu tidak berfungsi seperti yang diharapkan (tampak sangat jelek!).
<button type="button">
untuk yang tidak mengirimkan formulir dan<input type="submit">
untuk yang lain. Kemudian tangkap dengan jquery$('#formID').submit(function(e){});
Jawaban:
Nilai default untuk
type
atributbutton
elemen adalah "kirim". Aturtype="button"
untuk menghasilkan tombol yang tidak mengirimkan formulir.Dalam kata-kata Standar HTML : "Tidak melakukan apa-apa."
sumber
The
button
elemen memiliki tipe defaultsubmit
.Anda dapat membuatnya tidak melakukan apa pun dengan mengatur jenis
button
:sumber
Cukup gunakan HTML lama yang baik:
Bungkus sebagai subjek tautan, jika diinginkan:
Atau jika Anda memutuskan Anda ingin javascript menyediakan beberapa fungsi lain:
sumber
<input type="button" />
Button
adalah sebuah wadah dalam HTML. Itu memungkinkan Anda untuk menempatkan hal-hal seperti gambar atau tabel (tidak yakin mengapa Anda melakukan ini, tetapi Anda bisa) dll sementarainput
tidak mendukung itu. Ada perbedaan antara keduanya, dan masing-masing memiliki kasus penggunaan yang sesuai.sumber
Jujur, saya suka jawaban yang lain. Mudah dan tidak perlu masuk ke JS. Tapi saya perhatikan bahwa Anda bertanya tentang jQuery. Jadi demi kelengkapan, di jQuery jika Anda mengembalikan false dengan penangan .click (), itu akan meniadakan aksi default widget.
Lihat di sini untuk contoh (dan lebih banyak barang juga). Ini dokumentasinya juga .
Singkatnya, dengan kode sampel Anda, lakukan ini:
Sebagai manfaat tambahan, dengan ini, Anda dapat menyingkirkan tag jangkar dan cukup gunakan tombol.
sumber
e.preventDefault()
tidak melakukan apa pun untuk menghentikan pengiriman (di mana dimulai denganfunction(e)
).Tanpa mengatur
type
atribut, Anda juga bisa kembalifalse
dariOnClick
handler Anda , dan mendeklarasikanonclick
atribut tersebut sebagaionclick="return onBtnClick(event)"
.sumber
Ya, Anda dapat membuat tombol tidak mengirimkan formulir dengan menambahkan atribut tipe tombol nilai:
<button type="button"><button>
sumber
sumber