2014-04-24 98 views
2

我有以下代碼。檢查表單是否成功提交html5

<div class="form-group"> 
    <label for="store_account_name">Store Title</label> 
    <input type="text" value="" class="form-control" name="store_account_name" id="store_account_name" placeholder="Please insert store title of the external store" required /> 
</div> 
<div class="form-group"> 
    <label for="store_url">Store URL</label> 
    <input type="url" value="" class="form-control" name="store_url" id="store_url" placeholder="Please insert store URL as described in help section" required /> 
</div> 

關於提交按鈕我想檢查表單是否經過驗證。我有一個listner事件,它具有preventDefault按鈕。所以我只想在這兩個輸入都被成功驗證的時候發送ajax調用。是否有任何JS函數來檢查驗證的狀態或任何CSS屬性添加到無效字段。

+0

請澄清更多。 – halkujabra

+0

現在當表單被提交時,即使字段未被驗證,也會進行ajax調用。只有在字段驗證成功後才能進行Ajax調用。 –

+0

請更改標題。你需要這樣的東西:'在表單提交中添加事件偵聽器'。您絕對不需要檢查表單是否已提交。 – FreeLightman

回答

6

您應該使用窗體的onsubmit事件。這聽起來像你正在聽提交按鈕的點擊事件是不正確的。

表單的提交事件只會在表單有效時觸發。如果表單無效,HTML5驗證規則將阻止此事件觸發。

jsFiddle demo

$('#myform').submit(function(e){ 
    e.preventDefault(); 

    // do ajax now 
    console.log("submitted"); 
}); 
+0

即使字段未經過驗證,它也會執行ajax。 –

+0

根本不是真的。如果表單無效,它不會觸發。在答案中看到小提琴。 – MrCode

+0

謝謝你的回答是正確的。問題是我已經包含一個創建問題的js文件。該js文件要求表單具有data-validate =「true」屬性,並且在放置它時會覆蓋其功能。 –

1

基於您的評論,我覺得這是你在「form」調用一個函數的「onsubmit」屬性看換

。在該函數中,執行驗證,然後在字段有效時進行ajax調用,否則不要。

0

如果你會用你的計劃,PHP和JSON這將是明確的和像其他偉大的項目回答罰款。 如果表單提交響應客戶端的結果,如果不通過json拋出一個錯誤。