2013-02-27 221 views
1

嘿,我正在嘗試使用表單通過JavaScript提交數據,但它不斷刷新頁面,當我不希望它。防止窗體刷新頁面

我的形式是這樣的:

<form name="myForm" method="post"> 

<input type="text" name="name"/> 
<input type="submit" name="add" value="Add Resource" onclick="insert(); return false;"/> 

</form> 

我的JS功能有:

function insert(e){ 
e.preventDefault(); 
    var name = document.myForm.name; 
    console.log(name);  
} 

有人告訴我,防止默認是你如何停止形式的默認行爲,但它仍然發生了我。我如何解決它 ?

回答

3

雖然你沒有通過e。相反,它會更好地結合使用JavaScript的形式,而不是使用屬性:

document.querySelector('[name=myForm]').addEventListener('submit', function (e) { 
    e.preventDefault(); 
}); 

你也可以綁定到click事件提交輸入的

+0

那麼怎麼來的onclick在HTML不解析'e',但是事件監聽器默認會執行嗎?它們不是同一個東西=/ – Sir 2013-02-27 02:44:36

+0

@Dave你甚至不會發送'e',你可以不帶任何參數地調用insert()。這是迄今爲止不是首選的方法,無論如何(我使用'onclick')。 – 2013-02-27 02:45:34

+0

這個方法是ie8 +,這是合理的。但是,ie8不會正確發送'e',因此您可能需要檢查'if(typeof(e)==「undefined」)e = event;'。 – 2013-02-27 02:46:53