получение идентификатора html-элемента с помощью jquery - PullRequest
1 голос
/ 03 августа 2010

Мне нужно получить постданные из формы и отправить их через 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] я хочу, чтобы id элемента былключ постаданных для отправки.Я пробовал values[$(this).attr('id')] = field.value, но это не работает.Любая помощь будет ценной

Ответы [ 4 ]

1 голос
/ 03 августа 2010

настоящих

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

сделать это

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

и будьте осторожны с переменной $ on $fields.

0 голосов
/ 03 августа 2010

Вы можете использовать следующее:

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

    });

    var str = (JSON.stringify(values));
0 голосов
/ 03 августа 2010

Не сериализуйте массив.Я предполагаю, что вы удаляете свойства dom-элементов таким образом.

Попробуйте использовать вместо:

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();
});
0 голосов
/ 03 августа 2010

также вы можете сделать это

var values = {} 
$('#myform :input').each(index){
   values[$(this).attr('name')]=$(this).attr('id')
}
 myJson = JSON.stringify(values);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...