防止窗体刷新页面

问题描述:

嘿,我正在尝试使用表单通过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);  
} 

有人告诉我,防止默认是你如何停止形式的默认行为,但它仍然发生了我。我如何解决它 ?

虽然你没有通过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