2012-10-30 49 views
2

短版值不同:按鈕的文字會查詢字符串提交

我怎麼能有我的窗體的按鈕標籤文本從沒有使用<button>標籤提交到服務器的價值有什麼不同?

龍版本:

我想有一個出現了一個按鈕的形式比在查詢字符串中提交的值不同的文本。所以,我環顧四周,並遇到了這種方法......

<button name="method" type="submit" value="repackage">Update Config</button> 

......而且在我的一臺筆記本電腦上工作的IE9,我很高興。用戶看到「更新配置」,服務器在查詢字符串中收到method=repackage

然後我帶這個應用程序工作,並在工作站上運行它,也與IE9。但有些事情出錯了。用戶仍然看到「更新配置」,但服務器現在在查詢字符串中收到method=Update%20Config

所以我研究了一些。我發現www.w3schools.com建議不要在表單中使用<button>標籤。他們說:「如果您在HTML表單中使用<button>元素,不同的瀏覽器可能會提交不同的值。使用<input>在HTML表單中創建按鈕」this article。這似乎是我所經歷的。

所以我看了更多,發現了很多關於正確方法的衝突信息。例如here is a Stack Overflow post這個問題恰恰是這個問題,但接受的答案是使用<button>標籤。我可以從經驗和研究中得知,這不是一個可靠的方法。

+0

@Daedalus:謝謝你的鏈接。你認爲w3schools.com在這種情況下可能是錯的嗎? –

回答

1

如果沒有其他辦法試試這個:

使用的圖像按鈕,而不是按鈕。圖像按鈕可以像普通的提交按鈕一樣工作,但是您可以創建所需按鈕文本的圖像(然後沒有人可以更改文本)。

<input type="image" src="http://images.webestools.com/buttons.php?frm=2&btn_type=31&txt=Update+Config" name="method" value="repackage"> 
+0

謝謝,我開始認爲這是必要的。但感覺只是一點工作密集,特別是如果我經常這樣做。 –

0

對於新來者:對於某些CSS這個作品般的魅力截至9月2017

<form> 
    <label style="padding:5px; cursor:pointer; border:solid 1px; border-color:#ccc"> 
     <input style="display:none" type="submit" name="method" value="repackage"> 
     <span>Update Config</span> 
    </label> 
</form>