$(wrapper).append('<div class="form-group" id="req_name" name="req_name">' + x + '.{{ newReqs.req_name(class_='form-control', id='reqInput') }}<a href="#" class="remove_field"><i class="fa fa-times-circle fa-fw fa-lg"></i></a></div>');//add input box
Эта строка создает поля ввода с идентификатором reqInput.В HTML вы не можете иметь один и тот же идентификатор более чем для одного элемента, поэтому эта строка:
var userInput = document.getElementById("reqInput").value;
... всегда дает значение первого элемента (последующие недопустимы).
Если вы добавляете число (x) для каждого ввода (делая его "reqInput1"
, "reqInput2"
и т. Д.), Как при добавлении их, так и при получении значения, я думаю, выбудьте хороши, поскольку не будет общих идентификаторов (хотя вам нужно будет учитывать, что произойдет, если кто-то удалит любой ввод, кроме самого последнего!)
Обновленный раздел кода будет выглядеть примерно так::
if(x < max_fields){ //max input box allowed
x++; //text box increment
var inputId = "reqInput" + x;
$(wrapper).append('<div class="form-group" id="req_name" name="req_name">' + x + '.{{ newReqs.req_name(class_='form-control', id='???') }}<a href="#" class="remove_field"><i class="fa fa-times-circle fa-fw fa-lg"></i></a></div>');//add input box
var userInput = document.getElementById(inputId).value;
};
Я не совсем уверен, что вы используете в строке добавления, где написано {{ newReqs.req_name(class_='form-control', id='reqInput(x)') }}
, но в итоге вы хотите использовать значение переменной inputId
(который будет "reqInput1" или "reqInput2" или т. д.) в качестве идентификатора для поля ввода.