3

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

4

2 回答 2

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用作名称。

于 2012-05-18T21:32:55.407 回答
4

我看到两个可能的问题。

1)form标签内有table标签。虽然这可能不是问题的根本原因,但它不是有效的 HTML。

2)您使用“提交”作为name您的提交按钮。应该避免这种情况,因为您的对象会与 JavaScript 保留字发生冲突。id使用“提交”以外的其他内容,就像您对属性所做的那样。

于 2012-05-18T21:37:50.500 回答