2010-03-04 42 views
2
不同

我使用含有鈕釦型形式如下所示:按鈕類型值是在IE&FF

<form method="post" action=""> 
<button type=submit value="hello" name="submitform">World</button> 
</form> 

在這裏,按鈕型示出了不同的瀏覽器

現在print_r($_POST)顯示

不同的行爲
Array 
(
    [submitform] => World 
) 
In IE(v 7.0) 

Array 
(
    [submitform] => Hello 
) 
in FF(v 3.5) 

爲什麼會顯示不同的值... 現在我的問題是:

  1. 我想在這兩個瀏覽器[submitform]=Hello,我不想改變價值「世界」的<button>

  2. <button type="submit"><input type="submit">更好

回答

2

你可以替換按鈕與一個隱藏的輸入字段信息:

<form method="post" action=""> 
    <button type="submit">World</button> 
    <input type="hidden" name="submitform" value="hello" /> 
</form> 

這是一個browserquirks保存方法。

另一種可能性,雖然少途徑優雅,是使用圖像:

<form method="post" action=""> 
    <input type="image" src="my_World_image.gif" name="submitform" value="hello" /> 
</form> 

優點:你可以有不同的submiting值多個提交按鈕。缺點:正如David Dorward所提到的,很可能你會因爲錯誤的實現而再次面對同樣的問題,即IE的問題。

第三種可能性是JavaScript的,但你會遇到各種各樣的問題,爲被禁用的用戶(我警告你!):

<input type="hidden" name="submitform" value="" id="changeme" /> 
<button type="button" onclick="do_submission('hello')">Submit Hello</button> 
<button type="button" onclick="do_submission('world')">Submit World</button> 

<script type="text/javascript"> 
function do_submission(value) { 
    document.getElementById('changeme').value = value; 
    document.getElementsByTagName('form')[0].submit(); 
} 
</script> 
+0

這不是我想要的解決方案....這是替代方案...我需要解決方案親愛的 – diEcho 2010-03-04 12:15:09

+0

爲什麼這不是您想要的解決方案?當你有多個提交按鈕時,唯一的情況是你的問題不同。在這種情況下,您必須放棄按鈕內的「世界」或添加一些容易出錯的JavaScript。 – Boldewyn 2010-03-04 14:00:33

+0

這不起作用。有些瀏覽器不會發送圖像輸入的值,只是座標。 – Quentin 2010-03-05 11:07:54

1

很好用button您可以在按鈕內部擁有任意文本或圖像。這是不可能與input afaik。該值始終也是按鈕文本。

如果IE有這種奇怪的行爲,那麼它似乎沒有其他選擇,以保持按鈕和文本中的值相同(這正是input正在做什麼)。

2

我總是用<input type="submit" value="Whatever I want the button label to be" />,它的工作很好。

1

<button>在MSIE是可怕的破壞。 <input type="submit">不會讓您的標籤與價值不同。

解決辦法是使用<input type="submit">並給每個人一個唯一的名稱,然後search to find which one was successful