我需要从表单中获取postdata并发送它 通过ajax 代码如下:
var $fields = $('#myform :input').serializeArray();
var values = {}
jQuery.each($fields, function(i, field)
{
values[field.name] = field.value
});
myJson = JSON.stringify(values);
现在,我想要的是values[field.name]
而不是values[$(this).attr('id')] = field.value
要发送的后期数据的关键。我试过{{1}}但是,
它不起作用。任何帮助都是有价值的
答案 0 :(得分:1)
而不是
var $fields = $('#myform :input').serializeArray();
这样做
var $fields = $('#myform :input').map(function(){
return {'id': this.id, 'value': this.value}
}).get();
并注意$
变量上的$fields
。
答案 1 :(得分:0)
你也可以这样做
var values = {}
$('#myform :input').each(index){
values[$(this).attr('name')]=$(this).attr('id')
}
myJson = JSON.stringify(values);
答案 2 :(得分:0)
不要序列化阵列。我猜你会删除dom-elements的属性。
请尝试使用:
var values = new Array();
//this way you'll get an array of DOM-elements with all their properties
jQuery('#myform :input').each(function(){
$this = jQuery(this); //I do this to make the later code more readable, can be omitted
values[$this.attr('id')] = $this.val();
});
答案 3 :(得分:0)
您可以使用以下内容:
var values = {};
$("#myform :input").each(function(i, field) {
values[field.id] = field.value;
});
var str = (JSON.stringify(values));