Sur la page suivante, en utilisant Firefox, la suppression du bouton soumet le formulaire, mais pas l'ajout du bouton.
Comment empêcher le boutonremove
de soumettre un formulaire ?
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'); } }
Vous utilisez un élément bouton HTML5. N'oubliez pas que la raison est que ce bouton a un comportement de soumission par défaut, comme indiqué dans la spécification W3, comme suit :Bouton HTML5 W3C一个>
Vous devez donc préciser explicitement son type :
Pour remplacer le type de soumission par défaut. Je voulais juste souligner pourquoi cela se produit.