2014-01-20 82 views
0
<form method="POST" onsubmit="return false;"> 
... 
<input type="submit" name="button" value="Login" onclick="require('file.js').submitForm(this.form);"> 
... 
</form> 

如何在Internet Explorer 9中使用JavaScript触发此INPUT元素的onclick事件(以便它可以提交表单)? 我想:触发输入/表单的onclick事件

document.getElementsByName("button")[0].click() 

document.getElementsByName("button")[0].onclick() 

但既不工程。

(document.getElementsByName( “按钮”)。长度= 1)

+0

你会得到任何错误?你确定这是表单上的第一个按钮吗?你可以添加一个ID到按钮并通过ID获取元素? – Goose

+0

[fireEvent MSDN](http://msdn.microsoft.com/en-us/library/ie/ms536423(v = vs.85).aspx) – Givi

+0

不,我没有看到任何可见的错误,但我知道什么是错的 - 如果我留下一些空白处,表单没有提交。当我把正确的值在字段中使用click()方法正确提交。 – Kossak

回答

0

可以使用

document.getElementsByTagName("form").submit(); 

和点击事件,你可以使用这个

element = document.getElementsByName("button")[0] 
if (typeof element.onclick == "function") { 
    element.onclick.apply(element); 
} 
0

在展望你的问题的表面,我相信你试图触发一个表单帖子和处理与一些客户端逻辑提交。

您拥有的代码阻止了表单由于“​​返回false”而被张贴。点击该按钮后,会触发提交事件,该事件被阻止。那么你怎么知道按钮是否被触发,知道结果是一样的?

对于更简单的编码逻辑,将JavaScript调用放在表单标签或按钮中,但不能同时放在两者中。我的建议是离开按钮。 type =“submit”意味着它会提交表单。表单本身有一个JavaScript函数来决定是否发布。

<form method="POST" onsubmit="return prepost();"> 
... 
<input type="submit" value="Submit"> 
</form> 

<script> 
function prepost(){ 

    // if the form needs to be stopped 
    return false; 


    // if the form needs to be posted 
    return true; 

} 
</script> 
0

答案:如果我留下一些字段空白,表单没有提交。当我把正确的值放在正确的字段中时,它使用上面的click()方法正确提交。谢谢大家的回答。