2012-07-13 31 views
1

我想知道,我有一個2輸入提交在我的表單上。 其中有一個名字:是.submit()失去輸入的名稱提交

<input name="_close" type="submit" id="myId" value="close"> 

當我點擊它,我通過(後JS做的事情)

$('#myForm').submit(); 

提交表單然後在我的服務器代碼我測試的Request如果它有query「_close」,但似乎並非如此。

我的問題是: 有沒有一種方法,使jQuery方法.submit()保持輸入按鈕的名稱,單擊或手動指定到.submit()功能我想在我的下一個請求額外的參數?

謝謝。

+0

.submit()觸發要提交的表單。所有設定值都會發送,所以提交值也應該如此。我會建議在輸入名稱的開始處防止下劃線。 '_language'和其他許多瀏覽器都保留下來,並可能導致這種行爲。 – rsplak 2012-07-13 09:50:52

+0

@rsplak我改了名字,刪除了「_」但沒有任何效果。 – 2012-07-13 09:57:34

+0

@Tristan我已經更新了我的答案,以解釋爲什麼它不能像您期望的那樣工作,併爲您提供了一些解決方案。 – 2012-07-13 10:15:56

回答

2

我不確定關於提交按鈕以及如何/如果他們通過但如果他們不是你可以在你的預先提交javascript賦值給一個隱藏的輸入相同的名稱。

我剛剛爲你運行一個例子。

的test.html

<form action="test.php" action="POST" > 
    <input type="submit" name="submitButton" value="Click me to submit" /> 
</form> 

test.php的

<?php 
    echo $_POST['submitButton']; 
?> 

這並不回聲點擊這裏給我提交

我然後做使用提交功能,另一個測試在jQuery中不會超過價值。

原因是這樣,你可以測試服務器端提交按鈕被按下,因爲你可能有多個提交按鈕的形式。檢查值可以讓你測試哪一個是專門用來提交表單的。

爲了使您能夠使用外部輸入作爲一個特定的,以便其名稱/值對在請求中傳遞,而不是在你的jQuery的表格上調用submit()提交按鈕,選擇提交按鈕本身和它調用click() 。這將告訴表單,該特定的提交按鈕已被使用,因此在請求中設置其值。

2

代替

$('#myForm').submit() 

嘗試

$('#myId').click(); 

這將使您的表單提交,同時你可以找出哪個按鈕觸發的形式提交。