【问题标题】:javascript doesn't work in IE (getElementById)javascript 在 IE 中不起作用(getElementById)
【发布时间】:2015-06-17 19:43:20
【问题描述】:

我正在使用带有两个提交按钮的表单和带有 2 个功能的 JS 来使用其中一个。

 <form action="" name="submit" id="step_1_form" method="post" accept-charset="UTF-8">
...
<input type="submit" value="Speichern & zurück" class="backbutton" form="absenden" name="saveandback" onClick="saveandback()" />

<input type="submit" value="Speichern & Step 2" class="send" form="absenden" name="saveandfurther" onClick="step2()" />
</form>

JS

   var form=document.getElementById("step_1_form");
function step2() {
    form.action="step2.php";
    form.submit();
}
function saveandback() {
    form.action="scripts/saveandback.php";
    form.submit();
}

它适用于 Safari、Chrome 和 Firefox,但不适用于 IE。你能帮我找出是哪个元素造成了问题以及如何解决它吗?那肯定很不错。谢谢!

【问题讨论】:

  • 您在 html 中的 id 和 action 后面缺少等号。
  • 感谢您的评论,这个错误发生在我写帖子的时候,在原始文件中是等号。
  • 能否请您照原样复制粘贴您的实际代码?不要手动输入。不可能知道你在真实代码中有什么以及什么是错别字。您也缺少action"" 中的等号。
  • 对不起,你是对的。现在是原始代码。只是复制粘贴不包括输入字段,因为我确信这没有效果。
  • 我能想到的唯一一件事就是你有多个相同id的元素,而IE挑错了。

标签: javascript html forms internet-explorer


【解决方案1】:

好的,我找到了解决方案。

当提交按钮与函数同名时,它在 IE 中不起作用。所以不要这样做:

<input type="submit" value="Speichern" form="absenden" name="saveandback" onClick="saveandback()" />

最好做这样的事情

<input type="submit" value="Speichern" form="absenden" name="ANOTHERNAME" onClick="saveandback()" />

【讨论】:

    【解决方案2】:

    试试
    var form = document.getElementById("step_1_form");
    除非您之前声明过form,否则这通常会引发错误; Safari、Chrome 和 Firefox 让错误更容易溜走。

    【讨论】:

    • 好点,但它不能解决问题。但我仍然将 var 保留在那里。这是有道理的。
    • "这通常会引发错误" — 仅在严格模式下,必须由作者明确触发。在严格模式之外,它会隐式创建一个全局变量。
    猜你喜欢
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多