2

2 つの異なるスクリプトがあります。1 つはform の jquery post で、もう 1 つはjquery form validationです。

送信ボタンのクリックアクションでポストスクリプトを実行するため、検証の前に有効になります:/そして、ポストスクリプトの前に実行するように検証を変更できませんでした:(したがって、検証せずにフォームを送信します。

どのようにそれを作ることができますか?感謝します!


JQuery POST コード

$(function() {

  $("#btnsend").click(function() {

        var dataString = 'fullname='+ escape(document.contact.full_name.value);
        $.ajax({
          type: "POST",
          url: "query.php?act=sendMail",
          data: dataString,
          success: function() {

            $('#contact-form').hide()
                      .html("<p>thanks!</p>")
                              .fadeIn(500, function() {$('#contact-form').append("");});
           } 

        });

        return false;
    });

});

JQuery 検証

プラグインに感謝http://bassistance.de/jquery-plugins/jquery-plugin-validation/

<!-- Form Validation -->
<script src="inc/validation/jquery.validate.js" type="text/javascript"></script>
<script src="inc/validation/js/cmxforms.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="inc/validation/css/validation.css" media="screen" />

<script type="text/javascript">
$(document).ready(function() {
    $("#commentForm").validate();
});
</script>  

<form id="commentForm" name="contact" method="post" action="">
    <ul id="contact-form">
        <li><label for="full_name">Full Name: *</label><input type="text" name="full_name" id="full_name" class="txt_input required" /></li>
        <li class="alignRight"><input type="submit" value="Send" id="btnsend" name="btnsend" class="btn_submit" /></li>
    </ul>
</form>
4

1 に答える 1

2
$("#commentForm").validate( {
   submitHandler: function(form) {
      // validation success, do something
   }
});

成功関数のコールバック内からajax送信を呼び出します。

詳細については、http ://docs.jquery.com/Plugins/Validation/validateを確認してください(同じプラグインについて話していると思います)。

于 2009-09-28T13:56:08.097 に答える