Apakah html valid memiliki yang berikut:
<form action="a">
<input.../>
<form action="b">
<input.../>
<input.../>
<input.../>
</form>
<input.../>
</form>
Jadi, ketika Anda mengirimkan "b" Anda hanya mendapatkan bidang dalam formulir batin. Saat Anda mengirimkan "a" Anda mendapatkan semua bidang dikurangi yang ada di dalam "b".
Jika tidak memungkinkan, solusi apa untuk situasi ini tersedia?
html
web-standards
standards-compliance
semua kode Anda
sumber
sumber
Jawaban:
A. Ini bukan HTML atau XHTML yang tidak valid
Dalam spesifikasi XHTML W3C resmi, Bagian B. "Larangan Elemen", menyatakan bahwa:
http://www.w3.org/TR/xhtml1/#prohibitions
Adapun spesifikasi HTML 3.2 yang lebih lama , bagian pada elemen FORMS menyatakan bahwa:
B. Penyelesaiannya
Ada pemecahan masalah menggunakan JavaScript tanpa perlu membuat tag bentuk sarang.
"Cara membuat formulir bersarang." (meskipun judul ini bukan tag bentuk bersarang, tetapi solusi JavaScript).
Jawaban untuk pertanyaan StackOverflow ini
Catatan: Meskipun seseorang dapat menipu Validator W3C untuk melewati halaman dengan memanipulasi DOM melalui skrip, itu masih bukan HTML legal. Masalah dengan menggunakan pendekatan seperti itu adalah bahwa perilaku kode Anda sekarang tidak dijamin di seluruh browser. (karena itu bukan standar)
sumber
Jika seseorang menemukan posting ini di sini adalah solusi yang bagus tanpa perlu JS. Gunakan dua tombol kirim dengan nama atribut yang berbeda periksa dalam bahasa server Anda yang tombol kirim ditekan karena hanya satu dari mereka yang akan dikirim ke server.
Sisi server bisa terlihat seperti ini jika Anda menggunakan php:
sumber
HTML 4.x & HTML5 melarang formulir bersarang, tetapi HTML5 akan memungkinkan penyelesaian dengan atribut "form" ("form owner").
Sedangkan untuk HTML 4.x Anda dapat:
sumber
Seperti yang dikatakan orang lain, ini bukan HTML yang valid.
Sepertinya Anda melakukan ini untuk memposisikan formulir secara visual di dalam satu sama lain. Jika itu masalahnya, lakukan saja dua formulir terpisah dan gunakan CSS untuk memposisikannya.
sumber
Tidak, spesifikasi HTML menyatakan bahwa tidak ada
FORM
elemen yang boleh mengandungFORM
elemen lain .sumber
Anda dapat menjawab pertanyaan Anda sendiri dengan sangat mudah dengan memasukkan kode HTML ke Validator W3 . (Ini fitur bidang input teks, Anda bahkan tidak perlu meletakkan kode Anda di server ...)
(Dan tidak, itu tidak akan divalidasi.)
sumber
alih-alih gunakan metode javascript khusus di dalam atribut action dari form!
misalnya
sumber
Kemungkinan adalah memiliki iframe di dalam bentuk luar. Iframe berisi bentuk batin. Pastikan untuk menggunakan
<base target="_parent" />
tag di dalam tag kepala iframe untuk membuat formulir berperilaku sebagai bagian dari halaman utama.sumber
tidak, lihat w3c
sumber
Tidak, ini tidak valid. Tetapi "solusi" dapat membuat jendela modal di luar bentuk "a" yang berisi bentuk "b".
Ini dapat dengan mudah dilakukan jika Anda menggunakan bootstrap atau mematerialisasi css. Saya melakukan ini untuk menghindari menggunakan iframe.
sumber
Solusi non-JavaScript untuk tag formulir bersarang:
Karena Anda mengizinkan
saat mengirimkan "a", yang berikut ini akan berfungsi, menggunakan formulir web biasa tanpa trik JavaScript yang bagus:
Langkah 1. Letakkan setiap formulir di halaman web sendiri.
Langkah 2. Masukkan iframe di mana pun Anda ingin sub-formulir ini muncul.
Langkah 3. Keuntungan.
Saya mencoba menggunakan situs web kode-bermain untuk menunjukkan demo, tetapi banyak dari mereka melarang menyematkan situs web mereka di iframe, bahkan di dalam domain mereka sendiri.
sumber
Jika Anda memerlukan formulir Anda untuk mengirim / mengkomit data ke database relasional 1: M, saya akan merekomendasikan membuat pemicu DB "setelah disisipkan" pada tabel A yang akan memasukkan data yang diperlukan untuk tabel B.
sumber
Tidak, ini tidak valid tetapi Anda dapat mengelabui posisi inner form Anda di atas
HTML
dengan bantuanCSS
danjQuery
penggunaan. Pertama-tama buat beberapa wadah penampung di dalam formulir orang tua Anda dan kemudian di tempat lain di halaman mana div dengan formulir anak Anda (bagian dalam):....
Berikan kontainer Anda beberapa heaght stabil
Terima menipu trik posisi "other_form" relatif ke wadah div.
PS: Anda harus bermain dengan angka untuk membuatnya terlihat bagus.
sumber