防止窗体刷新页面
问题描述:
嘿,我正在尝试使用表单通过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
事件提交输入的
那么怎么来的onclick在HTML不解析'e',但是事件监听器默认会执行吗?它们不是同一个东西=/ – Sir 2013-02-27 02:44:36
@Dave你甚至不会发送'e',你可以不带任何参数地调用insert()。这是迄今为止不是首选的方法,无论如何(我使用'onclick')。 – 2013-02-27 02:45:34
这个方法是ie8 +,这是合理的。但是,ie8不会正确发送'e',因此您可能需要检查'if(typeof(e)==“undefined”)e = event;'。 – 2013-02-27 02:46:53