2017-08-28 17 views
0

當提交按鈕放置在表單標籤之外(這是我的科爾多瓦移動應用所需的)時,我遇到了jQuery驗證失效的問題。一旦調用.validate,執行就會停止。當按鈕位於表單之外時,jQuery驗證不起作用

我的HTML是建立這樣:

<form id="form-cart" > 
    // All form fields here 
</form> 

<ons-bottom-toolbar> 
    <button class="button" onclick="addToBasket();" data-trn-key="add_to_basket"> 
    Add to Basket 
    </button> 
</ons-bottom-toolbar> 

然後調用函數爲:

function addToBasket() 
{ 
    $.validate({  
     form : '#form-cart',  
     borderColorOnError:"#FF0000", 
     onError : function() {  
     },  
     onSuccess : function() { 
     // Run ajax on success 
       } 
      }; 
      sNavigator.pushPage("confirmation.html", options);    
      return false; 
     } 
    }); 
} 

我怎樣才能得到這個工作讓她能夠驗證即使調用AJAX該按鈕是否在窗體標籤之外?

+0

等一下...你確定你'使用[jQuery Validate插件](https://jqueryvalidation.org)? 'form','borderColorOnError','onError'和'onSuccess'不是這個插件的有效選項。 – Sparky

+0

根據你的代碼,你並沒有使用最常被稱爲jQuery Validate插件的東西。已編輯的標籤。 – Sparky

回答

0

試試這個:

<form id="form-cart" > 
    // All form fields here 
    // Don't give <input type="submit"> here 
</form> 

<ons-bottom-toolbar> 
    <button type="submit" id="submitBtn" class="button" onclick="addToBasket();" data-trn-key="add_to_basket"> 
    Add to Basket 
    </button> 
</ons-bottom-toolbar> 

$(document).ready(function() { 
    $("#submitBtn").click(function() { 
     $("#form-cart").submit(); 
    }); 
}); 
+0

不工作:(( – user1996496

1

據jQuery的驗證插件documentation有兩種不同的方法:

validate() - 驗證所選的形式。

valid() - 檢查所選表格或所選元素是否有效。

所以,你應該建立表單驗證您的功能之外.validate方法和檢查形式是你的函數內有效(見下面的代碼示例):

$('#form-cart').validate({  

}); 

function addToBasket() { 
    if ($('#form-cart).valid()) 
     //do you onSuccess stuff 
    } 
} 
+1

是的,也是根據本文檔,必須將'.validate()'方法附加到代表表單的選擇器上,並且OP的參數'form','borderColorOnError','onError'和'onSuccess',完全沒有意義。 – Sparky

+0

謝謝,我修復了驗證部分 –