2014-06-26 139 views
0

這裏是我的HTML:提交通過jQuery的表單提交刪除輸入變量

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<form id="test" method="get" action=""> 
    <input type="hidden" name="var1" value="true" /> 
    <input type="submit" name="var2" value="submit" /> 
</form> 
<script> 
$("#test").submit(); 
</script> 

這使得中有VAR1但不VAR2所得到的請求。我的問題是爲什麼以及如何才能獲得var2?

這裏有一個現場演示:

http://www.frostjedi.com/terra/dev/submit.php

+0

var2是提交按鈕,你只會得到var1這不是問題。 –

+0

var2是一個提交按鈕,它不會發布值,你需要添加另一個輸入類型隱藏/文本等 –

回答

1

嘗試:method="post"在形式上或使用<button type="submit"></button>

+1

已經有一個提交按鈕在窗體中。 – RobG

1

的表格應提交,只有當它被點擊提交表單提交按鈕的值(見HTML5 4.10.22.4 Constructing the form data set)。調用提交方法不會單擊該按鈕,因此它不會提交該值。

您發佈的代碼將無限提交表單,謝謝。

你到處都可以調用按鈕點擊方法,但可能無法正常工作(即提交按鈕的值):

<form id="test" method="get" action=""> 
    <input type="hidden" name="var1" value="true"> 
    <input type="submit" name="var2" value="submit"> 
</form> 

<button onclick="$('#test')[0].var2.click()">submit form</button> 

或者,如user3701524表明,使用方法=如果POST適合。

+0

「您發佈的代碼將無止境地提交表單,謝謝」不,它不會 - 除非您修改我發佈的代碼,如果您已經完成了這些操作,那麼我不能對此負責。如果設置了$ _GET ['var1']',它會回顯'print_r'輸出。 – neubert

+0

複製並粘貼到瀏覽器中,$(「#test」)。submit();'提交表單,重新加載頁面,提交表單... – RobG

+0

這就是爲什麼我在http://www.frostjedi提供的現場演示如果設置了$ _GET ['var1'],則退出.com/terra/dev/submit.php。我發佈的代碼只是爲了給我想要做的概念概述。如果我要拋出現場演示的PHP代碼,可能會讓不熟悉PHP的人感到困惑。由於這個問題最終不是PHP的問題... – neubert

0

按鈕上的值只會在您實際點擊該按鈕時提交。爲了使這一切工作不錯,我建議結合

$('form').on('submit', function(e) { 
    // here you have the button value if it was clicked. 
    e.preventDefault(); // optional this prevent default submission. 
}); 

無論哪種方式,調用$('form').submit()發送按鈕的價值,因爲不是由按鈕本身觸發。

希望它有幫助!