2012-04-25 79 views
2

我正在使用JQuery驗證插件來驗證我的應用程序中的表單。當按鈕是「提交」類型時,它工作正常。但是,我有一種表單,我需要使用JQuery.Ajax提交數據,因此我使用簡單的<input type='button'>。但然後驗證不會工作。 這裏的工作代碼 -JQuery驗證插件不適用於簡單按鈕

<head> 
<script> 
$(document).ready(function(){ 
    $("#some_form").validate({}); 
}); 
</script> 
</head> 
<body> 
<form name='some_form' id='some_form'> 
<!-- Form Fields --> 
<input type='submit' value='Submit'> 
</form> 
</body> 

在上面的代碼工作,但是,當我把這個代碼<input type='button' value='Submit'>,這是行不通的。

有沒有人有任何想法如何得到這個工作?

+0

嗨,我認爲你需要給**名**和** **號元素提交按鈕.. – Chandresh 2012-04-25 07:02:02

+0

是U確定的validate()將要給出的validate( {})... – 2012-04-25 07:02:44

+0

@lakshmipriya是的,我不認爲這是問題,因爲代碼工作正常提交按鈕 – skos 2012-04-25 07:04:32

回答

1

AFAIK,jQuery驗證插件被設計爲僅在提交被觸發時才起作用;因此,當您在輸入元素上具有類型「按鈕」時,表單實際上未提交,因此驗證從不運行。是否有一個原因,你不想有'提交'類型?

編輯處理意見:使用AJAX,但仍然有一個「提交」按鈕類型,您使用的插件參數的「submitHandler」選項...是這樣的:

$("#some_form").validate({ 
     submitHandler: function(form) { 
     ... ajax stuff here ... 
    } 
}); 

這將覆蓋實際發佈表單,但仍會觸發提交事件,以便驗證運行。

+0

我想使用Ajax,我不希望頁面在數據提交時被刷新 – skos 2012-04-25 07:11:43

1

好吧!我想我找到了答案。所以我在這裏發佈它以防萬一需要它。下面的代碼

<head> 
<script src="jquery.js" type="text/javascript"></script> 
<script src="jquery.validate.js" type="text/javascript"></script> 
<script> 
$(document).ready(function(){ 
    $('#button_id').click(function() { 
    if ($("#some_form").validate().form() == true) 
     { 
      // Call Ajax Here 
     } 
    }); 
}); 
</script> 
</head> 
<body> 
<form name='some_form' id='some_form'> 
<!-- Form Fields --> 
<input type='button' id='button_id' value='Submit'> 
</form> 
</body> 
相關問題