2010-03-04 86 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