【问题标题】:Return false on addEventListener submit still submits the form?在 addEventListener 提交时返回 false 仍然提交表单?
【发布时间】:2011-06-22 21:09:51
【问题描述】:
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;
  }
});

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

【问题讨论】:

  • 另一个奇怪的地方:我可以在表单中添加 onsubmit 属性,并执行 form.addEventListener,它们似乎都在运行。这是浏览器的错误吗?
  • 另一个奇怪的地方:onsubmit="return false;"确实会阻止表单提交。

标签: javascript dom-events


【解决方案1】:

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

请注意,IE 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';
  }
});

【讨论】:

【解决方案2】:

return false; 它仅适用于 jQuery 绑定函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    相关资源
    最近更新 更多