2012-05-18 81 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