IE在单击按钮元素时发送内部HTML

前端之家收集整理的这篇文章主要介绍了IE在单击按钮元素时发送内部HTML前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的网页上有以下html(简体).
<button type="submit" name="action" value="ButtonA">Click Here</button>

在Firefox中,它提交“ButtonA”作为“action”表单值的值.但是,在IE7中,它提交了“Click Here”.有什么方法可以解决这个问题吗?我不想使用输入标签,因为我需要能够自定义文本而不影响发送回表单的值(本地化).基本上,我希望能够有多个具有相同名称的按钮,并根据它们的值,在提交时执行不同的操作.在这种情况下,让IE正常运行有什么容易吗?

[更多]

也许我应该更清楚,但我不能使用

<input type="submit" name="Action" value="ButtonA">

因为我需要能够更改为本地化规则显示的文本,而不会影响随表单提交的按钮的实际值.

[更多]

为了进一步阐述,基本上,我希望按钮能够根据语言说“保存”或“Sauver”,但不会将提交给服务器的值更改.我还希望有多个具有相同名称的按钮,并根据值,执行某些操作,而不是依赖于按钮名称,并测试是否存在该按钮的值.代码已经从这个角度编写了,我只想在没有现有服务器端处理代码的情况下更改值中显示的文本.

这是一个非常好的explanation of the problem链接,有一些可能的解决方案.

解决方法

一种解决方案是使用Javascript和隐藏字段
<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重新启用.
经过测试的代码

<html>
<head>
    <script type="text/javascript">
    <!--
    function OnSubmitForm(actionname) {
            var f = document.frm;
            f.actionparam.value = actionname;
            f.submit();
    }
    //-->
    </SCRIPT>
</head>
<body>
   <noscript>
        <div style="background-color: yellow; margin: 20px;" >
            You are using a limited version of the site because you don't have Javascript enabled
        </div>
    </noscript>


   <h1>form</h1>
    <form name="frm" method="post">
    <input type="hidden" name="actionparam" value="DefaultAction" />
    <button name="defaultbutton" type="submit">default action</button>
    <button name="extrabutton1" disabled onclick="OnSubmitForm('ExtraAction1')">Extra action 1</button>
    <button name="extrabutton2" disabled onclick="OnSubmitForm('ExtraAction2')">Extra action 2</button>
    </form>


   <h1>Results</h1>
   <h2>forms collection</h2>
   <ol>
   <%
   For x = 1 To Request.Form.count()
      Response.Write("<li>" + Request.Form.key(x) + "=" + Request.Form.item(x) + "</li>")
   Next
   %>
   </ol>


    <script type="text/javascript">
    <!--
    document.frm.extrabutton1.disabled = false;
    document.frm.extrabutton2.disabled = false;
    //-->
    </SCRIPT>

</body>
</html>

猜你在找的HTML相关文章