2

私はjQuery検証を使用しており、最初の選択後に情報を表示し、次に送信後にformデータベースにajax呼び出しを行っています。php

これは、私がそれを機能させることができるのと同じくらい近いです。残っている唯一の問題は、form修正が必要な検証エラーがある場合にユーザーが送信できるようにすることです。

私はsubmitHandlerそれが機能するための鍵だと信じていますが、私がコメントした場所で試したコードは、//tried various things hereさまざまな問題を引き起こしました。

ページのコードは次のとおりです。

<html>
<head>
<script src="../../jquery_theme/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="dist/jquery.validate.js"></script>

<script>
$(document).ready(function(){
$("#commentForm").validate({
    submitHandler: function(form) {
        //tried various things here
        }
    });
 });

</script>

</head>
<body>


<form class="cmxform" id="commentForm"  >
<fieldset>

 <p> <label for="select_part">Select Part to Adjust Count</label></p>  

          <div>  <select name="id_part" id="select_part" class="required" >
                <option value="">---</option>
                <option value="1">option1</option>
                <option value="2">option2</option>

            </select>

                <div id="returnedValue" class="ajaxReturn"></div>
            </div>
                <br />

 <p>
 <label for="cname">Name</label>
 <em>*</em><input id="cname" name="name" size="25" class="required" minlength="2" />
 </p>
 <input id="submitForm" class="submit" type="submit" value="Submit"/>
 </p>
 </fieldset>
 </form>
 <p><div id="returns"></div></p>
 <script type="text/javascript" src="validateTestDB.js"></script>
 </body>
 </html>

ページに情報を返す JavaScript は次のとおりです。

$('#select_part').change(function(){
var select_part = $('#select_part').val();


$.post('../../php/getCounts.php', { select_part: select_part}, function(data){
$('#returnedValue').hide().html(data).fadeIn(1200);


      });
   });

 $('#submitForm').click(function(){


var select_part = $('#select_part').val();
var name = $('#cname').val();
$.post('validateResult.php', {select_part: select_part, name: name}, function (data3){
    $('#returns').html(data3);
     });

}); 

私は 2 日間何かを読んだり試したりしてきましたが、行き詰まってしまいました。

4

1 に答える 1

5

検証コード$('#submitForm').click()の内部に干渉しているクリックハンドラーがあります。submitHandler:これは冗長であり、.click()ハンドラーを削除して。を優先する必要がありsubmitHandler:ます。次に、目的のコードを、次のように内部に配置する必要がありsubmitHandlerます。

$(document).ready(function(){
    $("#commentForm").validate({
        submitHandler: function(form) {
            var select_part = $('#select_part').val();
            var name = $('#cname').val();
            $.post('validateResult.php', {select_part: select_part, name: name}, function (data3){
                $('#returns').html(data3);
            });
        }
    });
});
于 2012-10-20T14:42:50.727 に答える