2012-04-25 20 views
2

私のアプリケーションでフォームの検証にJQuery検証プラグインを使用しています。ボタンのタイプが「submit」の場合はうまく動作します。しかし、私はJQuery.Ajaxを使用してデータを送信する必要がある1つのフォームを持っているので、単純な<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

こんにちは、私は**あなたは**名前を付ける必要があると思うし、ボタンを提出する** ID **要素... – Chandresh

+0

は、uは(必ず検証されている)は、(検証として与えられることになるだろうです{})... –

+0

@lakshmipriyaはい、コードは送信ボタンでうまく動作するので、問題はないと思います – skos

答えて

1

AFAIK、jQuery検証プラグインは、送信がトリガーされたときにのみ機能するように設計されています。したがって、入力要素に「ボタン」タイプがある場合、フォームは実際には提出されないため、検証は実行されません。あなたは '提出'タイプをしたくない理由はありますか?

編集コメントに対処するために:AJAXを使用するには、まだ「送信」ボタンの種類を持って、あなたはこのように...プラグイン引数の「submitHandler」オプションを使用します。

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

これが優先されますフォームの実際の投稿は、まだ検証が実行されるように送信イベントをトリガします。

+0

Ajaxを使いたいのですが、データが送信されたときにページをリフレッシュする必要はありません – skos

1

Allright!私は答えを見つけたと思う。誰もがそれを必要とする場合に備えて、私はここにそれを掲示しています。ここでは、コード

<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> 
関連する問題