2011-03-31 36 views
1

我有一個搜索表單您能否在提交表單後保持提交=在網址中顯示?

<form id="search" method="GET"> 
    <input type="text" name="q" id="q" /> 
    <input type="submit" value="search" name="submit" id="submit" /> 
</form> 

,當我提交其添加?q=&submit=submit的URL是沒有辦法,我可以把它從追加submit=submit但仍通過q=的方法嗎?

回答

6

如果您從<input type="submit" />中刪除name屬性,那麼應該從querystring中刪除submit=submit(Firefox/Firebug中的快速測試證實了這一點)。例如:

<input type="submit" value="search" /> 
+0

不要一些舊的瀏覽器需要「名稱」屬性來顯示「搜索」作爲按鈕的文本?我沒有IE7或任何Netscape可供測試 - 只是我以爲我記得的東西。 – Dave 2011-03-31 15:35:23

+1

@dave一些瀏覽器使用「名稱」屬性,如「ID」屬性,但我從來沒有聽說過它用於按鈕文本 – JKirchartz 2011-03-31 20:34:53

-2

不需要。您需要刪除輸入。

+0

我認爲這是不正確 - 如果你把一個函數的onsubmit的形式,你可以通過JavaScript禁用提交場,這將阻止它顯示URL中的字段。 – Dave 2011-03-31 15:32:04

+0

@Dave這當然是一個有趣的方法!是否禁用了一個足以讓它從提交中排除的字段? – 2011-03-31 15:35:50

+0

是的,它會阻止它在URL中 - 我不是100%確定是否「禁用」這個詞 - 但我相信它是。我有一個包含大量搜索選項的表單 - 但是,即使有人只使用了一個搜索選項,它也會產生巨大的url,所以我這樣做的目的只是利用從默認值改變的URL,並保持url字符串的清晰。也許矯枉過正,但 - 我喜歡更短的網址:) – Dave 2011-03-31 15:39:36

0

嘗試使用按鈕:

<button type="submit">Submit Form</button> 
+0

此頁面http://www.w3schools.com/tags/tag_button.asp建議不要使用按鈕標籤來提交表單。 – Dave 2011-03-31 15:27:02

+0

表單中的按鈕標籤並不是相同的跨瀏覽器,有些將使用每個按鈕標籤作爲提交按鈕,而在其他情況下,值是wonkey不是理想的解決方案 – JKirchartz 2011-03-31 20:32:36

0

你可以只使用一個錨,而不是一個形式輸入:

<style type="text/javascript"> 
    function submitForm() { 
     document.getElementById('search').submit(); 
    } 
</style> 

<form id="search" method="GET"> 
    <input type="text" name="q" id="q" /> 
    <a href="javascript: submitForm();">Submit</a> 
</form> 

或者,你可以一個的onsubmit添加到窗體,並使用JavaScript來禁用輸入字段,該字段應使其不顯示在URL中。

+2

突然,表單的語義被破壞,並且它不會沒有JavaScript的工作。這甚至不會優雅地退化。除非絕對沒有其他解決方案,否則我不會使用它。幸運的是有很多。 – meagar 2011-03-31 17:21:48

+0

1)它工作得很好2)這是迄今給出的最好的選擇3)你的評論沒有幫助 – Dave 2011-03-31 18:12:26

+1

1)沒有JS它不僅失敗,但打破了整個形式2)伊恩的回答更好3)「幫助「不是評論的要求 – meagar 2011-03-31 20:14:59

0

將使用後,而不是得到的問題,因爲這將不會顯示任何內容的網址。

+0

我希望用戶能夠共享鏈接,你不能共享發佈數據。 – JKirchartz 2011-03-31 20:29:21

0

更改按鈕的名稱name=''

0

變化從按鈕類型:

類型= 「提交」

要:

類型= 「按鈕」

<button type="button">Login</button>