为什么jQuery不提交此表单?

时间:2012-05-18 21:31:22

标签: php jquery forms submit

我正在尝试使用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提交功能时,没有任何反应。我错过了什么?

2 个答案:

答案 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属性一样。