Правильный синтаксис JavaScript для использования document.getElementById в форме с переменными и итерацией - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь отправить содержимое div, созданного из данных формы, в скрытое поле формы, используя javascript, но не могу получить правильный синтаксис.

Все в файле .js,поле формы выглядит следующим образом

$('#ticketDetails').append ('<div id="seat-build-row-' + i + '" class="seller-listing row"> \
                   <input type="hidden" id="seatNumber-[' + i + ']" class="form-control seatNumber" name="ticket[' + i + '][seat_number]" value=""> \
               </div>');

, и ссылка на div, на которую я ссылаюсь, находится здесь

$('#ticket-rows').append('<div id="ticket-row-' + i + '" class="seller-listing row"> \
                  <div class="col-4 col-md-6" id="seatDetailsBuild-' + i + '">Section: <span class="seatSectionData"></span>, Row: <span class="seatRowData"></span>, Seat Number: <span class="seatNumData"></span></div> \
               </div>');

Три интервала заполнены с использованием размытия при вводе данных формы в другом месте, например

$('.seatNum').off('blur').on('blur', function() {
                   var row = $('#ticket-row-' + $(this).parent().parent().data('row'));
                   row.find('.seatNumData').html($(this).val());

                   }
               });

Пока все хорошо (все работает отлично), за исключением того, что я могу определить правильный синтаксис для document.getelementbyId, потому что ['+ i +'] в каждой строке.У меня есть это, но это не работает

document.getElementById(seatNumber-[' + i + ']).value = document.getElementById("seatDetailsBuild-' + i + '").innerHTML;

С более простым фиксированным идентификатором для seatNumber и seatDetailsBuild, он отлично работает (но только один раз).

Любая помощь по правильному синтаксисус благодарностью.

1 Ответ

0 голосов
/ 01 октября 2018

Ваши цитаты неуместны.Они должны быть вокруг боковой части идентификатора, а не конкатенируемой переменной.

document.getElementById('seatNumber-[' + i + ']')

Кстати, я бы не рекомендовал использовать [] в идентификаторах, так как это усложняет обращение кэлемент, использующий синтаксис селектора, поскольку квадратные скобки используются для селекторов атрибутов.

...