2

JQuery 検証プラグインを使用して、アプリケーションのフォームを検証しています。ボタンのタイプが「送信」の場合にうまく機能します。ただし、JQuery.Ajax を使用してデータを送信する必要があるフォームが 1 つあるため、 simple を使用してい<input type='button'>ます。しかし、その後、検証は機能しません。これが作業コードです-

<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'>と機能しません。

これを機能させる方法を知っている人はいますか?

4

2 に答える 2

1

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

コメントに対処するための編集: ajax を使用するが、「送信」ボタン タイプを使用するには、プラグイン引数の「submitHandler」オプションを次のように使用します。

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

これにより、フォームの実際の投稿が上書きされますが、送信イベントがトリガーされ、検証が実行されます。

于 2012-04-25T07:07:51.440 に答える
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>
于 2012-04-25T07:21:24.960 に答える