2016-12-07 89 views
1

我想我的表格上運行功能提交(與基礎架構驗證):的preventDefault上提交表單

$($newsletter).on('formvalid.zf.abide', function(ev) { 
    ev.preventDefault(); 
    alert('validate!'); 
    openRevealNewsletter(this.getAttribute('action')); 
}); 

我有我的警告時,我的方式是有效的,但我的preventDefault()不工作。我的表單提交:(

+0

嘗試使用「return false;」 –

+0

爲了防止表單**提交**,您需要在** submit **事件中防止默認 - 也許 –

+0

ev.stopPropagation(); rerurn false; – Rossitten

回答

1

攔截提交與submit事件。

$($newsletter).on("submit",function(e) { 
    e.preventDefault(); 
    console.log("submit intercepted"); 
    return false; 
}); 
$($newsletter).on("forminvalid.zf.abide", function(e,target) { 
    console.log("form is invalid"); 
    //show error messages 
}); 
$($newsletter).on("formvalid.zf.abide", function(e,target) { 
    console.log("form is valid"); 
    //process form 
    openRevealNewsletter(this.getAttribute('action')); 
}); 
+0

這將始終阻止提交發生......如果該表單有效會怎麼樣:p –

+0

我想OP想要阻止默認設置,並使用javascript來完成某些操作。 'openRevealNewsletter(this.getAttribute('action'));' – sabithpocker

+0

噢是的......但只有當表單有效時(我讀錯了) –

1

請試試這個:

$($newsletter).on('formvalid.zf.abide', function(ev) { 
    alert('validate!'); 
    openRevealNewsletter(this.getAttribute('action')); 
    return false; 
}); 

這將停止在錯誤的返回值的形式後

當您使用return false,自動做3件獨立的事情。當你把它叫做:

1.event.preventDefault();

2.event.stopPropagation();

3.Stops callback execution and it returns immediately when callback are called.

0

首先簡單的方法,使這項工作做的是使用

<button type="button">submit</button> 

,而不是

<button type="submit">submit</button> 

以編程方式提交表單中的Java腳本使用

 document.getElementById("FormID").submit(); 

這將提交你r形式當你調用這個腳本的時候也防止默認不會被要求,一旦你用提交按鈕替換提交按鈕

相關問題