1

以下のようなフォームがあります。

<form id="gb">
  <div><input type="text" name="a" value="" /></div>
  <div><input type="text" name="b" value="" /></div>
<div><input type="submit" name="s" value="Submit" /></div>
</form>

そして、シリアル化に jquery.serialize() メソッドを使用しています:

$('form#gb').submit(function() {
  $catch = $(this).serialize();

  /* This produces a query string: 
  a=XXXX&b=XXXXX */

  ...
  /* i want to validate a & b here */
  ...

  $.ajax({
     /* My Ajax Code */
  });

});

ajax アクションの前に a & b の値を検証したいのですが、どうすればよいですか?

4

2 に答える 2

1

常にサーバー側の検証を行います。そうは言っても、サーバー側の検証を行う前にクライアント側の検証を追加したい場合は、この jquery 検証プラグインをチェックアウトしてください。 http://docs.jquery.com/Plugins/Validation#Example

Javascript

$(document).ready(function(){
    $("#commentForm").validate({submitHandler: function(form) {
        // some other code
        // maybe disabling submit button
        // then:
        $.ajax({
             /* My Ajax Code */
        });
    });
});

HTML

<form class="cmxform" id="commentForm" method="get" action="">
    <fieldset>
         <legend>A simple comment form with submit validation and default messages</legend>
    <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>
    </fieldset>
</form>
于 2012-11-05T04:42:56.800 に答える
1

serializeArray()を使用できます。

メソッドはオブジェクトの.serializeArray()JavaScript 配列を作成し、JSON 文字列としてエンコードする準備ができています。一連のフォーム要素を表す jQuery オブジェクトで動作します

于 2012-11-05T03:21:11.810 に答える