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

时间:2011-02-15 23:41:32

标签: javascript javascript-events

我一直在尝试增强我的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; 时停止重新加载页面并提交默认方式,但是我应该使用它吗?有什么想法吗?

1 个答案:

答案 0 :(得分:6)

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

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

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

顺便说一下,使用jQuery就是:

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

一旦DOM准备好就会注册处理程序,它将在IE中运行。