2015-04-12 93 views
-1

我正在使用一个带有两个提交按钮和带有两个函数的JS来使用其中一个的窗体。javascript在IE中不起作用(getElementById)

<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浏览器。你能帮我找出哪一个元素造成了问题,也许如何解决它?那肯定很不错。谢谢!

+2

你想念你的HTML的id和行动后等号。 – jcubic

+0

感谢您的评论,我在写这篇文章时发生了这个错误,在原始文件中是等号。 – Fabrizio

+0

您可否将原来的实际代码复制粘贴?不要用手输入。不可能知道你在真实代码中有什么,以及什么是错别字。您在'action“”'中缺少一个等号。 – JJJ

回答

1

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

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

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

更好的做这样的事情

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

尝试
var form = document.getElementById("step_1_form");
除非你声明form之前,这通常会抛出一个错误; Safari,Chrome和Firefox让错误更容易失败。

+0

好点,但它不能解决问题。但我仍然保持这个变种。这是有道理的。 – Fabrizio

+1

“这通常会抛出一个错误” - 仅在严格模式下,必须由作者明确触发。在严格模式之外,它隐含地创建一个全局。 – Quentin