1

jquery.validateプラグインを使用して ajax で実行する前にフォームの検証を試みましたが、validate 関数を使用すると ajax 送信が機能しているため失敗しました。

ここに私のフォームがあります:

<form>
 <p><label for="cname">Name</label><em>*</em><input id="cname" name="name" size="25" class="required" minlength="2" /></p>
   <p><label for="cemail">E-Mail</label><em>*</em><input id="cemail" name="email" size="25"  class="required email" /></p>
   <p><label for="curl">URL</label><em></em><input id="curl" name="url" size="25"  class="url" value="" /></p>
   <p><label for="ccomment">Your comment</label><em>*</em><textarea id="ccomment" name="comment" cols="22"  class="required"></textarea></p>
   <p><input class="submit" type="submit" value="Submit"/></p>
 </form>

そして私のjqueryコード:

$('form').validate();
$('form').submit(function() {
  alert($(this).serialize());
  return false;
});

ここに私のフィドルがあります:http://jsfiddle.net/ongisnade/tzFzR/

ajaxが送信される前にフォームを検証する方法は?

4

1 に答える 1

4

使用.valid()前の確認に使用し.serialize()ます。

// Initialize
$('form').validate();

// Bind
$('form').submit(function() {
    if($('form').valid())
        alert($(this).serialize());
    else
        alert("Invalid");
    return false;
});​

フィドル: http://jsfiddle.net/eHD4g/

または、Sparky672submitHandlerが言ったように、次の属性を使用します。

$('form').validate({
    submitHandler: function(form) {
        alert($('form').serialize());
        return false;
    }
});

フィドル: http://jsfiddle.net/eHD4g/2/

于 2012-11-07T03:04:28.737 に答える