2013-06-01 43 views
5

好的,所以把preventDefault放在我的提交按鈕上可以停止表單提交。這樣做的結果是,它不會告訴用戶所需的字段,只是在按鈕上執行點擊事件。合併jQuery preventDefault和所需的表單輸入

向提交處理程序添加preventDefault可向用戶顯示所需字段,但仍會觸發與該按鈕關聯的點擊事件。

我需要兩個。

<form action="" method="post"> 
    <input type="text" class="class" id="id" name="name" required="required" /> 
</form> 

現在JS:

$("button").click(function(event){ 
    event.preventDefault(); 
    //performs function 
}); 

這將觸發click事件,無論所需形式的輸入。

$("form").submit(function(event){ 
    event.preventDefault(); 
}); 
$("button").click(function(){ 
    //performs function 
}); 

這會向用戶顯示所需的信息,但仍然執行提交按鈕功能。我如何做到這一點?我已經看了一些其他的SO問題,但是看起來大部分問題都可以通過將preventDefault添加到form.submit來解決。

+0

試試這個'$( 「形式」)提交(函數(事件){ 返回FALSE; });' –

回答

4

我實際上是在試圖做兩件事情,當我只需要做一件事。

我根本不需要button.click函數,因爲默認情況下它會提交表單。我只需要在form.submit中放置button.click函數。

$("form").submit(function(event){ 
    //perform button function 
    return false; 
}); 
+0

是的!這現在看起來很明顯,謝謝! :) – andrei

0

手動觸發提交事件。

$("button").click(function(event) { 
    event.preventDefault(); 

    $('form').submit(); 
});