Vanilla javascript表单验证,如何撤消阻止提交时的默认值

时间:2016-03-16 22:55:09

标签: javascript

我已经尝试了很多不同的东西,我最终放弃了并转而使用jQuery,但为了让我高枕无忧,在这种情况下如何撤消eventHandler?我现在使用的当前方法不起作用。

Front end New Profile Form Validations
var profileForm = document.forms[0];

profileForm.onsubmit = function processForm(eventHandler) {
eventHandler.preventDefault();
if {blah blah blah, my code
}else{
  profileForm.submit(function(eventHandler) {
    return false;
  });
}

1 个答案:

答案 0 :(得分:1)

使表单的.onsubmit属性为null,或使用.removeEventListener()

var form = document.getElementById("my-form"),
  button = document.getElementById("my-button"),
  text = document.getElementById("my-text");

function submitHandler(submitEvent) {
  alert("Stopping with value: " + text.value);
  submitEvent.preventDefault();
}

form.addEventListener("submit", submitHandler);

button.addEventListener("click", function() {
  form.removeEventListener("submit", submitHandler);
});
<form id="my-form">
  <input type="text" id="my-text" name="my-text">
  <input type="submit">
</form>