在jQuery中包含空值字段.serialize()

时间:2011-08-24 17:26:33

标签: jquery

我正在尝试通过jQuery $ .post提交表单并通过

序列化表单数据
$('form').serialize();

不幸的是,未经检查单选按钮复选框的字段未被序列化,ergo已提交。

是否可以包含所有字段,无论它们是否包含值?

我想这只影响像这样的字段

<input type="checkbox" name="some_name[]" value="1" />
<input type="checkbox" name="some_name[]" value="2" />

3 个答案:

答案 0 :(得分:2)

制作您自己的序列化版本:

(function( $ ){
  $.fn.mySerialize = function() {
    var returning = '';
    $('input, textarea',this).each(function(){
          var name = this.name;
          var value = this.value;
          returning += name + '=' + value + '&';
    })
    return returning;

  };
})( jQuery );


$('form').mySerialize();

小提琴:http://jsfiddle.net/maniator/apGC3/

答案 1 :(得分:-2)

你似乎错了,如live demo所示。即使foo字段不包含任何值,也会包含<form> <input type="text" name="foo" /> <input type="text" name="bar" value="baz" /> </form> 字段:

alert($('form').serialize());

然后:

foo=&bar=baz

打印(按预期):

{{1}}

答案 2 :(得分:-2)

DEMO:http://sandbox.phpcode.eu/g/bbfdd/2

结果:bar=

<form> 
<input name="bar" /> 
</form> 
<script> 
$(function(){ 
   $("input").click(function(){ 
       alert($("form").serialize()); 
    }); 
}); 
</script>