我正在尝试使用javascript将通过表单数据构建的div的内容发送到隐藏的表单域,但是我无法正确获取语法。
所有.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固定ID,它可以正常工作(但只能运行一次)。
非常感谢您提供有关正确语法的帮助。
答案 0 :(得分:0)
您的引号放错了位置。它们必须位于ID的列表部分附近,而不是串联在一起的变量。
document.getElementById('seatNumber-[' + i + ']')
顺便说一句,我不建议在ID中使用[]
,因为由于方括号用于属性选择器,因此使用选择器语法很难引用元素。