在没有jQuery的情况下提交表单时不要重新加载页面

fre*_*und 1 javascript javascript-events

我一直在努力提高我的javascript能力,因此我试图用AJAX sans jQuery提交一个表单.由于某种原因,我似乎不可能使用addEventListener(); 使用javascript停止表单提交.

window.addEventListener('load', function(){
    document.forms[0].addEventListener('submit', function(){
        send();
        return false;
    }, false);
}, false);
Run Code Online (Sandbox Code Playgroud)

这段代码 - 独立于我尝试交换返回false的顺序的任何方式; 和函数调用 - 不会停止提交表单,也不会返回send(); (自然地返回false)或returnValue = false; .

我可以阻止页面重新加载,并在使用return false时提交默认方式; 在内联事件监听器中,但我应该使用它吗?有什么想法吗?

rsp*_*rsp 6

你使用的是什么浏览器?在IE 9之前的IE中不支持addEventListener.

此外,您必须运行.preventDefault()和.stopPropagation().

另外,在页面的所有内容都已加载之前,加载事件不会触发,包括图像和所有内容,因此在提交表单时可能尚未注册处理程序.

顺便说一句,使用jQuery它将是:

$(function(){
  $('form').submit(function(){
    send();
    return false;
  });
});
Run Code Online (Sandbox Code Playgroud)

它会在DOM准备好后立即注册处理程序,它将在IE中运行.