2011-02-07 94 views
34
var form = document.forms[0]; 
form.addEventListener("submit", function(){ 
    var email = form.elements['answer_13829'].value; 
    if(email == '[email protected]') { 
    alert('redirecting the user...'); 
    window.location = 'xxxx'; 
    return false; 
    } 
}); 

我不明白 - 它仍然提交表格。有人可以修补我的代码并使其工作?addEventListener提交返回false仍提交表单?

+0

另一个古怪:我可以添加onsubmit属性以形成,并做form.addEventListener,他们都似乎运行。这是一个浏览器错误? – allyourcode 2014-02-18 00:19:12

+0

另一个奇怪的现象是:onsubmit =“return false;”会阻止表单提交。 – allyourcode 2014-02-18 00:20:26

回答

51

您需要使用事件对象的preventDefault()方法。

注意,既不addEventListener()也不preventDefault()在IE < = 8

var form = document.forms[0]; 
form.addEventListener("submit", function(evt){ 
    var email = form.elements['answer_13829'].value; 
    if(email == '[email protected]') { 
    evt.preventDefault(); 
    alert('redirecting the user...'); 
    window.location = 'xxxx'; 
    } 
}); 
-1

支撑在return false; 它jQuery的绑定函数工作只