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



我试图通过jQuery $提交一个表单。通过

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

不幸的是,未选中单选按钮复选框的字段没有被序列化,因此提交。

是否有一种方法包括所有字段,无论它们是否包含值?

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

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

创建您自己版本的serialize:

(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/

您似乎在这个现场演示中犯了错误。包括foo字段,即使它不包含任何值:

<form>
    <input type="text" name="foo" />
    <input type="text" name="bar" value="baz" />
</form>

然后:

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

打印(如预期):

foo=&bar=baz

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

result: bar=

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

相关内容

  • 没有找到相关文章

最新更新