2015-02-05 50 views
0

我有一個表單,用bootstrap構建,我發現表單驗證在提交按鈕的onclick事件之前沒有運行,這是沒用的。爲什麼在按下提交按鈕後引導表單驗證會發生?

請參見本搗鼓例子 - 壓在2種形式註冊按鈕,明白我的意思。

http://jsfiddle.net/5tr34k/ax13nLof/

我想一個辦法,以防止onclick事件發生,直到表單驗證已成功通過,然後運行之前的onclick JavaScript的

 <h3>Example</h3> 
    <form action="" method="post" name="registration_form1"> 

    <input type="text" class="form-control" placeholder="Username" required name="username" id="username"> 
    <input type="email" class="form-control" placeholder="Email" required="true" name="email" id="email"> 
    <input type="password" class="form-control" placeholder="Password" required name="password" id="password"> 
    <input type="password" class="form-control" placeholder="Confirm Password" required name="confirmpwd" id="confirmpwd">     
    <button id="myButton2" onclick="alert('i happen before validation');" type="submit" class="btn btn-default" >Register</button> 
    </form> 

在上面的代碼中,JavaScript警告運行該表單經過驗證。這可以防止或更改,以便JavaScript在表單驗證後運行?

回答

2

您需要使用的形式,而不是按鈕的單擊事件

$('#form').on('submit', function (e) { 
    //your awesome code here 
    alert('I HAPPEN BEFORE FORM VALIDATION'); 
}) 

演示的提交事件:Fiddle

+0

哦,可能它真的那麼簡單嗎?驚人! –

+0

爲什麼第二個窗體仍然不能用你的#form提交javascript? –

+0

@ jordan.peoples裏面有一個內嵌的onlcick處理程序...也改變了選擇器$('#form')' - http://jsfiddle.net/arunpjohny/uy31zg47/2/ –