我有一個提交按鈕和處理程序的窗體。該處理程序會執行一些驗證,如果驗證不是很酷,則會執行preventDefault()。jquery form.submit()觸發處理程序,但不是實際的提交
我的表單上有第二個按鈕,無需驗證即可提交。我的思維邏輯是:這個按鈕將添加一個類,指示,不驗證,然後觸發提交。提交事件將始終檢查是否應該驗證。
一些代碼:
//Add handler for no-validation submit
$('#button-no-falco').click(function() {
$('#form').addClass('no-falco');
$('#form').submit();
});
$('#form').submit(function(e) {
//If form has no-falco, don't validate.
if ($(this).hasClass('no-falco')) {
console.log("Skipping validation. Just submit.");
return;
}
//Validation code
e.preventDefault();
});
一些HTML:
<form role="form" method="post" action="{{action_url}}" name="edit-object">
<!-- bunch of inputs -->
<button type="submit" id="submit" class="btn btn-default">Save!</button>
<button type="button" id="button-no-falco" class="btn btn-default">No validation</button>
</form>
所以現在單擊按鈕,無法爾科按鈕將導致整個驗證被跳過,甚至有顯示出來的日誌信息。但是,實際的表單沒有提交。
如果我點擊常規提交按鈕(點擊了其他按鈕後)表單確實提交。
發生了什麼事?
我認爲你需要添加返回true;這裏如果($(this).hasClass('no-falco')){console.log(「跳過驗證,只需提交。」);返回true; } – Neha