Saya menyertakan beberapa formulir di dalam tabel HTML untuk menambahkan baris baru dan memperbarui baris saat ini. Masalah yang saya dapatkan adalah ketika saya memeriksa formulir di alat dev saya, saya melihat bahwa elemen formulir ditutup segera setelah pembukaan (input, dll tidak termasuk dalam formulir).
Karena itu, mengirimkan formulir gagal menyertakan bidang.
Baris tabel dan input adalah sebagai berikut:
<tr>
<form method="post" action="">
<td>
<input type="text" name="job_num">
</td>
<td>
<input type="text" name="desc">
</td>
</form>
</tr>
Bantuan apa pun akan bagus, terima kasih.
html
firebug
html-table
forms
Alex
sumber
sumber
<form>
tidak bisa dimasukkan ke dalam<tr>
.<tr>
.Jawaban:
Formulir tidak diizinkan menjadi elemen turunan dari
table
,tbody
atautr
. Mencoba untuk meletakkan satu di sana akan cenderung menyebabkan browser untuk memindahkan formulir itu muncul setelah tabel (sambil meninggalkan isinya - baris tabel, sel tabel, input, dll - di belakang).Anda bisa memiliki seluruh tabel di dalam formulir. Anda bisa memiliki formulir di dalam sel tabel. Anda tidak dapat memiliki bagian dari tabel di dalam formulir.
Gunakan satu formulir di sekitar seluruh tabel. Kemudian gunakan tombol kirim yang diklik untuk menentukan baris mana yang akan diproses (menjadi cepat) atau memproses setiap baris (memungkinkan pembaruan massal).
HTML 5 memperkenalkan
form
atribut . Ini memungkinkan Anda untuk menyediakan satu formulir per baris di luar tabel dan kemudian mengaitkan semua kontrol formulir di baris tertentu dengan salah satu formulir yang menggunakan ituid
.sumber
<form>
dalam<table>
standar dilarang ?Gunakan atribut "form" , jika Anda ingin menyimpan markup Anda:
(* Bidang formulir di luar tag <form>)
Juga lihat 2 komentar pertama
sumber
Jika Anda ingin "grid diedit" yaitu meja seperti struktur yang memungkinkan Anda untuk membuat salah satu baris bentuk, penggunaan CSS yang meniru tata letak TABLE tag:
display:table
,display:table-row
, dandisplay:table-cell
.Tidak perlu untuk membungkus seluruh tabel Anda dalam formulir dan tidak perlu membuat formulir dan tabel terpisah untuk setiap baris yang tampak dari tabel Anda.
Coba ini sebagai gantinya:
Masalah dengan membungkus seluruh TABEL dalam FORMULIR adalah bahwa setiap dan semua elemen bentuk akan dikirim pada ajukan (mungkin yang diinginkan tetapi mungkin tidak). Metode ini memungkinkan Anda untuk menentukan formulir untuk setiap "baris" dan hanya mengirim baris data yang dikirimkan.
Masalah dengan membungkus tag FORM di sekitar tag TR (atau TR di sekitar FORM) adalah bahwa itu HTML yang tidak valid. FORMULIR masih akan mengizinkan pengiriman seperti biasa tetapi pada saat ini DOM rusak. Catatan: Cobalah mendapatkan elemen turunan dari FORMULIR atau TR Anda dengan JavaScript, ini dapat menghasilkan hasil yang tidak terduga.
Perhatikan bahwa IE7 tidak mendukung gaya tabel CSS ini dan IE8 akan memerlukan deklarasi doctype untuk mendapatkannya ke mode "standar": (coba ini setara atau sesuatu)
Browser lain yang mendukung tampilan: tabel, tampilan: baris tabel dan tampilan: sel tabel harus menampilkan tabel data css Anda sama seperti jika Anda menggunakan tag TABLE, TR dan TD. Kebanyakan dari mereka melakukannya.
Perhatikan bahwa Anda juga dapat meniru THEAD, TBODY, TFOOT dengan membungkus grup baris Anda dengan DIV lain
display: table-header-group
,table-row-group
dantable-footer-group
masing - masing.CATATAN: Satu-satunya hal yang tidak dapat Anda lakukan dengan metode ini adalah colspan.
Lihatlah ilustrasi ini: http://jsfiddle.net/ZRQPP/
sumber