我一直在尝试增强我的javascript能力,因此我试图用AJAX sans jQuery提交表单。由于某些原因,我似乎不可能使用 addEventListener(); 来停止使用javascript提交表单。
window.addEventListener('load', function(){
document.forms[0].addEventListener('submit', function(){
send();
return false;
}, false);
}, false);
此代码 - 独立于我尝试交换 return false; 和函数调用的顺序 - 不会阻止表单提交,也不会返回send() ; (自然地返回false)或 returnValue = false; 。
我可以在内联事件监听器中使用 return false; 时停止重新加载页面并提交默认方式,但是我应该使用它吗?有什么想法吗?
答案 0 :(得分:6)
您使用的浏览器是什么?在IE 9之前的IE中不支持addEventListener。
此外,您必须运行.preventDefault()和.stopPropagation()。
另外一点,加载事件不会在页面的所有内容加载之前触发,包括图像和所有内容,因此在提交表单时可能还没有注册处理程序。
顺便说一下,使用jQuery就是:
$(function(){
$('form').submit(function(){
send();
return false;
});
});
一旦DOM准备好就会注册处理程序,它将在IE中运行。