JavaScript如何防止按钮提交表单

在下一页中,使用Firefox的“删除”按钮提交表单,但“添加”按钮不提交。如何防止“删除”按钮提交表单?

<html>

<head>

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<script type="text/javascript">

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>

</head>

<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>

回答:

你正在使用HTML5按钮元素。请记住,原因是此按钮具有默认的提交行为,如W3规范所述,如此处所示: W3C HTML5按钮

因此,你需要明确指定其类型:

<button type="button">Button</button>

为了覆盖默认的提交类型。我只想指出发生这种情况的原因=)

以上是 JavaScript如何防止按钮提交表单 的全部内容, 来源链接: utcz.com/qa/413165.html

回到顶部