2014-05-21 68 views
0

一起發送我認爲<button>-element的行爲與正常的<input> -element相同,因爲按鈕附加到表單並且可以具有名稱和值。<button> -element的值不會與

但是當談到發送它的價值時,它就不會這樣做。這<button>的價值永遠不會與其他形式的價值獲得通過:

<form action="" method="post"> 
    <fieldset> 
     <button type="button" id="fieldname" name="fieldname" value=""> 
      Click to select … 
     </button> 
    </fieldset> 
</form> 

value -attribute是通過JavaScript這只是正常設置。

有沒有辦法解決這個問題,不用額外隱藏<input> -element? 有人可以解釋一下,爲什麼<button>的行爲如此?

回答

2

按鈕是當它們被用來提交表單唯一成功的控制。

您的按鈕是type="button",因此它僅用於關閉JavaScript。它不會提交表格。

如果您將其更改爲type="submit"(或者由於submit是默認值而完全刪除type屬性),那麼它將在單擊時提交表單,並且成功控制並且其名稱和值將出現在提交的數據中。

Screenshot of Net tab

+0

這意味着,如果我有多個按鈕,帶*不同*名稱和值一種形式,只有** **提交的形式被髮送,右邊的?假設我想構建一個帶有許多按鈕的GUI,並且我想將GUI的當前狀態存儲在某處:然後我必須全部抓住它們,將它們的值存儲在額外的字段中並提交它們? – lampshade

+1

是和是(或其他一些存儲狀態的方式)。 – Quentin

0

如果您在HTML表單中使用<button>元素,則不同的瀏覽器可能會提交不同的值。使用<input>在HTML表單中創建按鈕。 (http://www.w3schools.com/tags/tag_button.asp

你爲什麼不這樣做:

<form action="" method="post"> 
    <fieldset> 
     <input type="button" id="fieldname" name="fieldname" value="Click to select …" /> 
    </fieldset> 
</form> 
相關問題