Saya ingin mengirimkan formulir menggunakan jQuery. Dapatkah seseorang memberikan kode, demo, atau tautan contoh?
Itu tergantung pada apakah Anda mengirimkan formulir secara normal atau melalui panggilan AJAX. Anda dapat menemukan banyak informasi di jquery.com , termasuk dokumentasi dengan contoh-contoh. Untuk mengirimkan formulir secara normal, lihat submit()
metode di situs itu. Untuk AJAX , ada banyak kemungkinan yang berbeda, meskipun Anda mungkin ingin menggunakan metode ajax()
atau post()
. Perhatikan bahwa post()
ini hanyalah cara yang mudah untuk memanggil ajax()
metode dengan antarmuka yang disederhanakan dan terbatas.
Sumber daya kritis, yang saya gunakan setiap hari, yang harus Anda tandai adalah Cara jQuery Bekerja . Ini memiliki tutorial tentang cara menggunakan jQuery dan navigasi sebelah kiri memberikan akses ke semua dokumentasi.
Contoh:
Normal
$('form#myForm').submit();
AJAX
$('input#submitButton').click( function() {
$.post( 'some-url', $('form#myForm').serialize(), function(data) {
// ... do something with response from server
},
'json' // I expect a JSON response
);
});
$('input#submitButton').click( function() {
$.ajax({
url: 'some-url',
type: 'post',
dataType: 'json',
data: $('form#myForm').serialize(),
success: function(data) {
// ... do something with the data...
}
});
});
Perhatikan bahwa ajax()
dan post()
metode di atas setara. Ada parameter tambahan yang dapat Anda tambahkan ke ajax()
permintaan untuk menangani kesalahan, dll.
$.post
secara eksplisit mendekonstruksi dan merekonstruksi formulir untuk menghasilkan data untuk dikirimkan. Terima kasih!$('form#MyForm').serialize() + '&newData=' + newData + '&moreData=' + moreData
. Catatan: dua yang terakhir mungkin perlu di-encode menggunakan urlencodeURIComponent()
. ATAU - Anda bisa mengubah untuk menggunakan pengkodean JSON di kedua ujungnya tetapi kemudian Anda harus memasukkan data formulir ke dalam struktur data JavaScript dengan data tambahan Anda dan membuat serialisasi. Jika demikian, Anda mungkin akan menggunakanserializeArray
formulir dan menggabungkan data Anda yang lain.Anda harus menggunakan
$("#formId").submit()
.Anda biasanya akan menyebutnya dari dalam suatu fungsi.
Sebagai contoh:
Anda dapat memperoleh informasi lebih lanjut tentang ini di situs web Jquery .
sumber
ketika Anda memiliki formulir yang sudah ada, yang sekarang seharusnya bekerja dengan jquery - ajax / post sekarang Anda bisa:
lakukan barangmu sendiri
Harap perhatikan bahwa agar
serialize()
fungsi berfungsi dalam contoh di atas, semua elemen formulir harus memilikiname
atributnya yang ditentukan.Contoh formulir:
@ PTF - data dikirimkan menggunakan POST dalam sampel ini, jadi ini berarti Anda dapat mengakses data Anda melalui
, di mana dataproperty1 adalah "nama-variabel" di json Anda.
di sini contoh sintaksis jika Anda menggunakan CodeIgniter:
sumber
Di jQuery saya lebih suka yang berikut:
Tapi sekali lagi, Anda benar-benar tidak perlu jQuery untuk melakukan tugas itu - cukup gunakan JavaScript biasa:
sumber
Dari manual: jQuery Doc
sumber
Untuk informasi
jika ada yang menggunakan
Jangan seperti ini
Butuh berjam-jam untuk menemukan saya yang mengirimkan () tidak akan berfungsi seperti ini.
sumber
"sumit"
membuatnya tidak jelas apakah kesalahan ketik tidak diinginkan dalam jawaban, atau terkait dengan masalah tersebut. Apakah maksud Anda tombol bernama"submit"
messes up form jquery submit ()? Atau maksud Anda masalahnya adalah Anda memberi nama tombol kirim alih-alih standartype="submit"
?Gunakan untuk mengirim formulir Anda menggunakan jquery. Ini tautannya http://api.jquery.com/submit/
sumber
button
ke tombol Anda untuk memastikan formulir tidak mengirimkan (karena tidak semua browser memperlakukan tombol tanpa jenis dengan cara yang sama).ini akan mengirimkan formulir dengan preloader:
Saya punya beberapa trik untuk membuat posting data formulir direformasi dengan metode acak http://www.jackart4.com/article.html
sumber
Lihat acara / kirim .
sumber
Perhatikan bahwa jika Anda sudah menginstal pendengar acara ajukan untuk formulir Anda, panggilan innner untuk mengirimkan ()
tidak akan berfungsi karena mencoba memasang pendengar acara baru untuk acara pengiriman formulir ini (yang gagal). Jadi, Anda harus mengakses Elemen HTML itu sendiri (membuka dari jQquery) dan memanggil kirim () pada elemen ini secara langsung:
sumber
Anda juga dapat menggunakan plugin formulir jquery untuk mengirim menggunakan ajax juga:
http://malsup.com/jquery/form/
sumber
sumber
Perhatikan bahwa di Internet Explorer ada masalah dengan formulir yang dibuat secara dinamis. Formulir yang dibuat seperti ini tidak akan dikirimkan dalam IE (9):
Untuk membuatnya berfungsi di IE buat elemen bentuk dan lampirkan sebelum mengirimkan seperti:
Membuat formulir seperti pada contoh 1 dan kemudian melampirkannya tidak akan berhasil - di IE9 ia melempar kesalahan JScript
DOM Exception: HIERARCHY_REQUEST_ERR (3)
Props untuk Tommy W @ https://stackoverflow.com/a/6694054/694325
sumber
Solusi sejauh ini mengharuskan Anda untuk mengetahui ID formulir.
Gunakan kode ini untuk mengirimkan formulir tanpa harus tahu ID:
Misalnya, jika Anda ingin menangani acara klik untuk tombol, Anda dapat menggunakannya
sumber
Jika tombol terletak di antara tag formulir, saya lebih suka versi ini:
sumber
Anda bisa menggunakannya seperti ini:
ATAU
sumber
Trik IE untuk bentuk dinamis:
sumber
Pendekatan saya sedikit berbeda Ubah tombol menjadi tombol kirim dan kemudian klik
sumber
Ini akan memposting data formulir pada nama file yang Anda berikan melalui AJAX.
sumber
Saya merekomendasikan solusi umum sehingga Anda tidak perlu menambahkan kode untuk setiap formulir. Gunakan plugin formulir jquery (http://jquery.malsup.com/form/) dan tambahkan kode ini.
sumber
Anda bisa melakukannya seperti ini:
sumber
Saya juga menggunakan yang berikut ini untuk mengirimkan formulir (tanpa benar-benar mengirimkannya) melalui Ajax:
sumber