我正在使用包含如下所示按钮类型的表单:
<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)
为什么它显示不同的价值...... 现在我的问题是:
我想在两个浏览器中都[submitform]=Hello
,我不想在<button>
之外更改“世界”值
<button type="submit">
或<input type="submit">
更好
答案 0 :(得分:2)
我总是使用<input type="submit" value="Whatever I want the button label to be" />
,而且效果很好。
答案 1 :(得分:2)
您可以使用隐藏的输入字段替换按钮的信息:
<form method="post" action="">
<button type="submit">World</button>
<input type="hidden" name="submitform" value="hello" />
</form>
这是一个浏览器保存方法。
另一种可能性,虽然不那么优雅,但是使用图像:
<form method="post" action="">
<input type="image" src="my_World_image.gif" name="submitform" value="hello" />
</form>
优势:您可以使用多个提交按钮提交不同的值。
缺点:正如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>
答案 2 :(得分:1)
使用button
,您可以在按钮内添加任意文本或图像。 input
afaik无法做到这一点。该值始终也是按钮文本。
如果IE有这种奇怪的行为,那么你似乎没有其他选择来保持按钮的值和文本中的文本相同(这正是input
正在做的事情)。
答案 3 :(得分:1)
<button>
严重受损。 <input type="submit">
不允许您将标签与值不同。
解决方法是使用<input type="submit">
并为每个人提供一个唯一的名称,然后search to find which one was successful。