当我单击添加新列按钮时,表单会自动提交
Form getting auto submit when i click add new column button
我正在研究一个用于保存费用记录的表单,使用连接到数据库的HTML和jQuery。
问题是当我单击"添加"按钮时,它应该添加新列,但它会自动提交表单。
.HTML
<form name="myForm" action="mysql_connection.php" method="post">
<table>
<tr>
<td>Expense       
      
      
      
Amount
<br/>
<input type="text" name="expense" id="expense" />
<input type="text" name="amount" id="amount" />
<br/>
</td>
</td>
<td>
<button class="add">Add</button>
</td>
</tr>
</table>
<input type="submit" value="Submit" />
</form>
jQuery
$(document).ready(
function() {
$('button.add').live('click',
function() {
$(this)
.closest('tr')
.clone()
.appendTo('table');
$(this)
.text('Remove')
.removeClass('add')
.addClass('remove');
});
$('button.remove').live('click',
function() {
$(this)
.closest('tr')
.remove();
});
$('input:text').each(
function() {
var thisName = $(this).attr('name'),
thisRrow = $(this)
.closest('tr')
.index();
$(this).attr('name', 'row' + thisRow + thisName);
$(this).attr('id', 'row' + thisRow + thisName);
});
});
这是表格
法典
如果将
<button>
元素更改为<button type="button">
元素,则解决方案可以正常工作。
JSFiddle
<button>
元素的默认类型是Submit
,因此这就是它导致表单提交的原因。
$('button.add').live('click',
function() {
$(this)
.closest('tr')
.clone()
.appendTo('table');
$(this)
.text('Remove')
.removeClass('add')
.addClass('remove');
return false;
});
在点击结束功能中添加"返回假"
检查链接 http://jsfiddle.net/J89TF/1/
使用e.preventDefault();
我认为您应该实施@Nunners解决方案。B'coz 它的干净代码。
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- angularjs-控制器在表单提交时未调用
- 禁用带有字符白名单的表单提交
- 如何使用Google Analytics跟踪表单提交
- 使用javascript将表单提交到iframe目标中
- e.preventDefault在表单提交时被忽略
- AngularJS JQuery Ajax表单提交等效
- JavaScript表单提交帮助
- PHP表单提交和重定向
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- setTimeOut AFTER jQuery表单提交
- 从函数中选择要触发表单提交的正确元素
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- 表单提交问题,如何在我的URL末尾获得ID的值
- Javascript使用Confirm取消表单提交