我正在尝试使用jQuery提交表单,但我必须错过一些小的,因为我无法使其工作,并且从我看到的所有内容都可以正常工作。
这有什么问题?
<table class="newrecord"><form id="editthis" action="page.php" method="post">
<tr><td class="left">Name:</td><td><input type="text" name="name" id="name" /></td></tr>
<tr><td class="left">Company:</td><td><input type="text" name="company" /></td></tr>
<tr><td class="left"><a href="?action=browse">Cancel</a></td><td><input type="button" name="submit" class="subbut" id="subthis" value="Update" /></td></tr>
</form></table>
和javascript:
$("#subthis").click(function() {
$('#editthis').submit(); // An alert box works, so I know this is triggering
});
正如代码中所提到的,如果我单击提交按钮,则警报框可以工作,但是当我使用jQuery提交功能时,没有任何反应。我错过了什么?
答案 0 :(得分:5)
您无需使用jQuery提交表单。这是提交按钮提交其所属表单的默认行为。
另外,请勿使用表格进行布局。表单元素本身可以很好地布局。
<form id="edit_this" action="page.php" method="POST">
<label>Name <input type="text" name="name"></label>
<label>Company <input type="text" name="company"></label>
<a href="?action=browse">Cancel</a>
<button type="submit">Update</button>
</form>
可以轻松布局并自行提交。
如果您在使用jQuery提交之前需要执行某些操作,请将其绑定到表单的onsubmit
处理程序,而不是实际单击该按钮。
实际问题是您给按钮的名称与JavaScript中的保留字之间的冲突。请勿使用submit
作为名称。
答案 1 :(得分:4)
我看到两个可能的问题。
1)form
标记内有table
个标记。虽然这可能不是您问题的根本原因,但它不是有效的HTML。
2)您已使用“提交”作为提交按钮的name
。这应该避免,因为您的对象将与JavaScript保留字冲突。使用“提交”以外的内容,就像使用id
属性一样。