Pada halaman seterusnya, menggunakan Firefox, mengalih keluar butang menghantar borang, tetapi menambah butang tidak.
Bagaimana untuk menghalang butang remove
daripada menghantar borang?
function addItem() { var v = $('form :hidden:last').attr('name'); var n = /(.*)input/.exec(v); var newPrefix; if (n[1].length == 0) { newPrefix = '1'; } else { newPrefix = parseInt(n[1]) + 1; } var oldElem = $('form tr:last'); var newElem = oldElem.clone(true); var lastHidden = $('form :hidden:last'); lastHidden.val(newPrefix); var pat = '="' + n[1] + 'input'; newElem.html(newElem.html().replace(new RegExp(pat, 'g'), '="' + newPrefix + 'input')); newElem.appendTo('table'); $('form :hidden:last').val(''); } function removeItem() { var rows = $('form tr'); if (rows.length > 2) { rows[rows.length - 1].html(''); $('form :hidden:last').val(''); } else { alert('Cannot remove any more rows'); } }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <html> <body> <form autocomplete="off" method="post" action=""> <p>Title:<input type="text" /></p> <button onclick="addItem(); return false;">Add Item</button> <button onclick="removeItem(); return false;">Remove Last Item</button> <table> <th>Name</th> <tr> <td><input type="text" id="input1" name="input1" /></td> <td><input type="hidden" id="input2" name="input2" /></td> </tr> </table> <input id="submit" type="submit" name="submit" value="Submit"> </form> </body> </html>
Anda menggunakan elemen butang HTML5. Ingat, sebabnya ialah butang ini mempunyai tingkah laku serah lalai, seperti yang dinyatakan dalam spesifikasi W3, seperti berikut: Butang HTML5 W3C一个>
Jadi anda perlu menyatakan jenisnya dengan jelas:
Untuk mengatasi jenis penyerahan lalai. Saya hanya ingin menunjukkan mengapa ini berlaku.