Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выбрать все input и добавить им значения (https://javascript.ru/forum/jquery/72538-vybrat-vse-input-i-dobavit-im-znacheniya.html)

Dark Souls 05.02.2018 17:37

Выбрать все input и добавить им значения
 
Доброго времени суток!
Любезные гуру, прошу помощи!
Есть форма (генериться моделью Yii2):
<form id='form-options' method='post'>
    // .....
    <div class='form-group field-form-name'>
        <label class='control-label' for='form_name'>
        <input class='form-control' id='form_name' name='Form[name]'>
        <p class='help-block help-block-error'></p>
    </div>
    // и таких 17 штук включая type = radio;
</form>

Нужно их всех выбрать и заполнить по клику:
$('.edit-line').on('click', function () {
    $.ajax({
        // ....
        success: function (data) {if (append_modal_input_value(data)) $('#edit').modal('show')}
    });
});
function append_modal_input_value(data) {
    var inputs = [];
    $('#form-options').each(function () {
        inputs = $(this).filter(':input');
    });
    // alert(JSON.stringify(inputs)) выводит объект
    return true;
}

И вот как бы мне с этим объектом поговорить?
inputs[0].name // не работает
alert(JSON.stringify(inputs[0])) // вообще ничего не выводит.

Нужно в инпуты всунуть значение из data.
P.S. можно конечно:
$('#form-options input[name="Form[name]"]').val(data.name);
// и так 17 раз, но это, я так понимаю, называют ганокодом )

:help:

laimas 05.02.2018 19:11

Цитата:

Сообщение от Dark Souls
$('#form-options').each(function ()

17 полей, но форма то одна, к чему .each()?

Цитата:

Сообщение от Dark Souls
$('.edit-line').on('click', function ()

$('.edit-line') - это что такое?

Dark Souls 05.02.2018 19:29

Цитата:

Сообщение от laimas (Сообщение 477082)
$('.edit-line') - это что такое?

Кнопка кликнув по которой отрабатывается ajax запрос из базы.

laimas 05.02.2018 19:33

Цитата:

Сообщение от Dark Souls
Кнопка кликнув по которой отрабатывается ajax запрос

Кнопка она и в Африке кнопка. Конкретно какая, не submit?

Dark Souls 05.02.2018 19:41

нет. простой button с параметрами data-idn, data-line. шкрябаю из него параметры для data в ajax.

laimas 05.02.2018 20:06

Ясно, но вставлять из полученного объекта в поля нужно в success: function (data) {
тут циклом обойти data, вставляя значение в поля соответствующие
}

Dark Souls 05.02.2018 20:16

for (var key in data) {
    $('form#form-options input[name="Form['+ key +']"]').not(':radio').val(data[key]);
}

Это работает. Просто я думал что можно вставлять обращаясь к полям через объект.

laimas 06.02.2018 08:55

Цитата:

Сообщение от Dark Souls
$('form#form-options input[name="Form['+ key +']"]').not(':radio')

А как может поле формы не относящееся к группе кнопок иметь имя этой группы, зачем здесь not(':radio')?

Не стоит искать каждое поле в форме, лучше сразу получить всю коллекцию полей формы (form.elements), обращаясь к требуемому полю в этой коллекции по имени - namedItem(name).


Часовой пояс GMT +3, время: 20:01.