Sebagian besar juga tidak menyadari fakta bahwa Anda dapat membedakan tombol formulir yang ditekan hanya dengan memberi mereka pasangan nama / nilai. Misalnya
<form action="process" method="post">
...
<input type="submit" name="edit" value="Edit">
<input type="submit" name="delete" value="Delete">
<input type="submit" name="move_up" value="Move up">
<input type="submit" name="move_up" value="Move down">
</form>
Di sisi server, tombol sebenarnya yang ditekan kemudian dapat diperoleh dengan hanya memeriksa keberadaan parameter permintaan yang terkait dengan nama tombol. Jika tidaknull
, maka tombol sudah ditekan.
Saya telah melihat banyak dari yang tidak perlu JS hacks / workarounds untuk itu, misalnya mengubah bentuk tindakan atau mengubah nilai masukan yang tersembunyi terlebih dahulu tergantung pada tombol ditekan. Ini sangat mencengangkan.
Juga, saya telah melihat hampir banyak peretasan / solusi JS untuk mengumpulkan yang dicentang dari beberapa kotak centang seperti pada baris tabel. Pada setiap pemilihan / pemeriksaan baris tabel, JS akan menambahkan indeks baris ke beberapa nilai yang dipisahkan koma dalam elemen input tersembunyi yang kemudian akan dipisahkan / diuraikan lebih lanjut di sisi server. Itu adalah hasil dari ketidaksadaran bahwa Anda dapat memberi beberapa elemen masukan dengan nama yang sama tetapi nilai yang berbeda dan Anda masih dapat mengaksesnya sebagai larik di sisi server. Misalnya
<tr><td><input type="checkbox" name="rowid" value="1"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="2"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="3"></td><td> ... </td></tr>
...
Ketidaksadaran akan memberi setiap kotak centang nama yang berbeda dan menghilangkan seluruh atribut nilai. Dalam beberapa situasi JS-hack / workaround-free, saya juga telah melihat beberapa keajaiban luar biasa yang tidak perlu di kode sisi server untuk membedakan item yang dicentang.