2010-08-03 194 views
1

我需要從表單獲取postdata並通過ajax發送 。
的代碼下面給出:使用jquery獲取html元素的ID

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]我想要的元素的ID是postadata的 鍵發送。我試過values[$(this).attr('id')] = field.value但是, 它不起作用。任何幫助將是有價值的

回答

0

您可以使用以下方法:

var values = {}; 
    $("#myform :input").each(function(i, field) { 
      values[field.id] = field.value; 

    }); 

    var str = (JSON.stringify(values)); 
1

var $fields = $('#myform :input').serializeArray(); 

insted的做到這一點

var $fields = $('#myform :input').map(function(){ 
    return {'id': this.id, 'value': this.value} 
}).get(); 

,並小心使用$$fields變量。

0

也可以做到這一點

var values = {} 
$('#myform :input').each(index){ 
    values[$(this).attr('name')]=$(this).attr('id') 
} 
myJson = JSON.stringify(values); 
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(); 
});