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

您可以使用serializeArray()。

.serializeArray()方法创建一个 JavaScript 对象数组,准备好被编码为 JSON 字符串。它对表示一组表单元素的 jQuery 对象进行操作

于 2012-11-05T03:21:11.810 回答
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 回答