我试图通过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>