2016-03-16 71 views
0

我已經嘗試了很多不同的事情,我最終放棄了,並切換到jQuery,但爲了我的安心,在這種情況下我將如何撤消eventHandler?目前我現在的方法不起作用。香草javascript表單驗證,如何撤消預防默認提交

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; 
    }); 
} 
+0

重複:http://stackoverflow.com/questions/8664486/javascript-code- to-stop-form-submission – albert

+0

Vanilla意味着沒有像jQuery這樣的庫。如果你想撤消'preventDefault()',爲什麼不去掉那條線呢? – Oriol

+0

要做的一件好事可能是停止使用'.onsubmit'風格的附件並使用['addEventListener()'](https://developer.mozilla.org/en-US/docs/Web/API /事件目標/的addEventListener)。然後你可以使用它的同伴'removeEventListener()'。否則,你可以'null''.onsubmit' – zero298

回答

1

是NULL表單的.onsubmit財產,或使用.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>

+0

我愛香草xD! – robe007