在addEventListener提交仍然提交表单时返回false?

时间:2011-02-07 16:58:59

标签: javascript javascript-events

var form = document.forms[0]; 
form.addEventListener("submit", function(){
  var email = form.elements['answer_13829'].value;
  if( email == 'geobraks@yahoo.ca') {
     alert('redirecting the user...');
     window.location = 'xxxx';
     return false;
  }
});

我不明白 - 它仍然提交表格。有人可以修补我的代码并使其正常工作吗?

2 个答案:

答案 0 :(得分:56)

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

请注意,IE< = 8中不支持addEventListener()preventDefault()

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

答案 1 :(得分:-3)

{{1}} 它仅适用于jQuery绑定函数