2014-01-20 108 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()方法正確提交。謝謝大家的回答。