Javascript Don';在没有jQuery的情况下提交表单时不能重新加载页面

Javascript Don';在没有jQuery的情况下提交表单时不能重新加载页面,javascript,javascript-events,Javascript,Javascript Events,我一直在尝试增强我的javascript能力,因此我尝试使用AJAX sans jQuery提交表单。由于某种原因,我似乎不可能使用addEventListener();使用javascript停止表单提交 window.addEventListener('load', function(){ document.forms[0].addEventListener('submit', function(){ send(); return false;

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

window.addEventListener('load', function(){
    document.forms[0].addEventListener('submit', function(){
        send();
        return false;
    }, false);
}, false);
此代码-独立于任何方式,我试图交换的返回错误的顺序;函数调用-不会阻止表单提交,也不会返回send();(自然返回false)或returnValue=false


当使用returnfalse时,我能够阻止页面重新加载和表单以默认方式提交;在内联事件侦听器中,但我应该使用它吗?有什么想法吗?

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

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

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

顺便说一下,使用jQuery可以:

$(function(){
  $('form').submit(function(){
    send();
    return false;
  });
});

一旦DOM就绪,它就会注册处理程序,并在IE中工作。

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

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

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

顺便说一下,使用jQuery可以:

$(function(){
  $('form').submit(function(){
    send();
    return false;
  });
});

它将在DOM准备好后立即注册处理程序,并在IE中工作。

您为什么不能使用jQuery或其他库?嗯,在生产环境中,不是真的。但我只是想了解一下,例如,当使用本机javascript看起来非常困难时,jQuery是如何做到这一点的……有什么原因不能使用jQuery或其他库吗?嗯,在生产中,不是真的。但我只是想了解一下,例如jQuery是如何完成这一任务的,而使用本机javascript似乎非常困难……是的,我知道,我正在使用Chrome和Firefox删除我的最后一条注释,正如它所显示的那样,非IE的浏览器默认情况下会传递事件,所以只需执行
addEventListener即可('submit',send,false);函数send(evt){evt.preventDefault();}
起作用。然而IE是另一回事,我遇到了一些问题,当我执行
函数send(evt){if(evt.preventDefault){evt.preventDefault();}else{window event.returnValue=false;}
停止函数执行,因此事件在IE中被取消,但它也不做任何其他事情……是的,我知道,我正在使用Chrome和Firefox删除我的最后一条注释,正如它所显示的那样,非IE浏览器默认通过事件,所以只需执行
addEventListener('submit',send,false);函数发送(evt){evt.preventDefault();}
有效。但是IE是另一回事,我遇到了一些问题,当我执行
函数发送(evt){if(evt.preventDefault){evt.preventDefault();}else{window.event.returnValue=false;}
停止函数执行时,事件在IE中被取消,但它也不做任何其他事情。。。