我的网页上有以下html(简体).
@H_404_2@<button type="submit" name="action" value="ButtonA">Click Here</button>
在Firefox中,它提交“ButtonA”作为“action”表单值的值.但是,在IE7中,它提交了“Click Here”.有什么方法可以解决这个问题吗?我不想使用输入标签,因为我需要能够自定义文本而不影响发送回表单的值(本地化).基本上,我希望能够有多个具有相同名称的按钮,并根据它们的值,在提交时执行不同的操作.在这种情况下,让IE正常运行有什么容易吗?
[更多]
也许我应该更清楚,但我不能使用
@H_404_2@<input type="submit" name="Action" value="ButtonA">因为我需要能够更改为本地化规则显示的文本,而不会影响随表单提交的按钮的实际值.
[更多]
为了进一步阐述,基本上,我希望按钮能够根据语言说“保存”或“Sauver”,但不会将提交给服务器的值更改.我还希望有多个具有相同名称的按钮,并根据值,执行某些操作,而不是依赖于按钮名称,并测试是否存在该按钮的值.代码已经从这个角度编写了,我只想在没有现有服务器端处理代码的情况下更改值中显示的文本.
这是一个非常好的explanation of the problem的链接,有一些可能的解决方案.
解决方法
一种解决方案是使用Javascript和隐藏字段
@H_404_2@<input type="hidden" name="actionparam" value="DoNothing">
<input type="button" onclick="OnSubmitForm('ActionA')" Value="Click Here for A" />
<input type="button" onclick="OnSubmitForm('ActionB')" Value="Click Here for B" />
function OnSubmitForm(actionname) {
var f = document.frm;
f.actionparam.value = actionname;
f.submit();
}
这也可以作为隐藏的CATPCHA,您可以在javascript函数中添加一些客户端验证
编辑:
既然你说要降级到非javascript浏览器,你可以使用这个版本,只允许一个默认操作给没有javascript的人
额外的按钮在HTML中禁用,但随后使用javascript重新启用.
经过测试的代码: