2012-05-18 44 views
3

我想提交一个表单与jQuery,我必须缺少一些小的东西,因为我无法得到这个工作,并从我看到它应该工作正常。为什么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

为什么你需要一个表单提交自己document.ready?编辑:我没有注意到事件绑定。用尽时不要阅读。获得的经验 –

+1

你有没有试过把'form'标签*放在'table'标签外面,这样你就有了有效的HTML? [本SO文章可能与(http://stackoverflow.com/questions/3622405/is-it-valid-to-have-a-form-tag-inside-a-table-tag) – TLS

+0

@CengizCan - 的表单不提交。代码在文档准备就绪时附加'click'事件。 – TLS

回答

4

我看到两个可能的问题。

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

2)您使用了“提交”作为您的提交按钮的name。这应该避免,因为您的对象将与JavaScript保留字相冲突。使用“提交”以外的内容,就像您使用id属性所做的一样。

+0

我在排除故障时移动了表格内部的表单。 #2虽然它!我将这个按钮重命名并且工作。谢谢!!! – JROB

+0

太棒了!请确保接受最适合您解决方案的答案。 – TLS

+0

我会一次我的10分钟过去了... – JROB

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> 

可以很容易layout'd,并将提交自己。

如果你需要的东西用jQuery提交之前发生,它绑定到窗体的onsubmit处理程序,而不是按钮的实际点击。


实际的问题是您在JavaScript中给出的按钮名称和保留字之间的冲突。请勿使用submit作为名称。

+0

我知道我不需要,但是我有一些其他的东西,我想用这种形式使用jquery,我只是把它归结为准备,直到我可以解决这个问题。 – JROB