2012-06-19 2 views
2

У меня есть массив, и в нем есть некоторые данные. Этот массив содержит идентификатор, имя, фамилию, адрес электронной почты, телефон. У меня также есть пять элементов ввода формы. Теперь я хочу добавить данные в массив в эти элементы. Например, идентификатор должен быть вставлен в поле формы ID, имя должно быть вставлено в элемент ввода имени и т. Д., Как я могу это достичь?как вставить данные в массив внутри формы элементы ввода

вот мой код

insert_data_in_form: function(data) { 
    var form = $("#dataform"); 
    var form_arr = new Array(); 

    form.each(function(i) { 
     var form_el = form.children("input[type='textfield']"); 
     form_arr.push(form_el); 
     console.log(data.length); 
     //for(var j = 0; j < 5; j++) { 
      form_el.val(data[i]); 
     //} 
    }); 
} 

ответ

2

Если значения в массиве данных в том же порядке, как они находятся в форме, то вы можете сделать это

insert_data_in_form: function(data) { 
    var formElems = $("#dataform input[type='text']"); 
    formElems.each(function(i,elem) { 
     $(this).val(data[i]); 
     // or even better use the following faster way 
     // if they are always text boxes 
     // this.value = data[i]; 
    }); 
} 

Demo:http://jsfiddle.net/joycse06/AJhEW/

ОБНОВЛЕНИЕ (альтернативный путь):

Вы также можете достичь этого, используя Implicit Looping с этим .val(function(index,val) варианта функции .val() как этот

var insert_data_in_form = function(data) { 
    var formElems = $("#dataform input[type='text']"); 
    formElems.val(function(i) { 
     return data[i]; 
    }); 
}; 

Demo:http://jsfiddle.net/joycse06/AJhEW/2/

0

эль -> обр:

form_arr[form_el.attr('name')] = form_el.val(); 

обр - > el:

form_el.val(form_arr[form_el.attr('name')]); 
Смежные вопросы