Я динамически добавляю новое текстовое поле в событие щелчка.
Я не могу получить значение каждого текстового поля, буду признателен за любую помощь, спасибо.
На моей html-странице:
<div id = "job-container">
<p>
<label>Job Property</label><br>
<input name = "JobProperty[1][job_property]" />
</p>
</div>
<a href = "javascript:" id = "add-new-jobproperty"
onclick = "createJobProperty()">Add new job</a>
В моем коде Javascript
let i = 2;
function createJobProperty() {
let template = `
<p>
<label>Job Property</label><br>
<input name = "JobProperty[${i}][job_property]">
</p>`;
let container = document.getElementById('job-container');
let div = document.createElement('div');
div.innerHTML = template;
container.appendChild(div);
definedLength=i;
i++;
}
Попробуйте добавить класс к входам, а затем получить их по className (поскольку по имени тега у вас могут быть другие входы) и перебрать каждый из них, чтобы получить значения.
<input class='my-input' name = "JobProperty[${i}][job_property]">
используйте этот код, чтобы добавить новый вход
var inputs = document.getElementsByClassName('my-input');
Array.from(inputs).forEach(function(element) {
console.info(element.value);
});
//or
Array.prototype.forEach.call(inputs, function(element) {
console.info(element.value);
});
Вы можете попробовать:
let i = 2;
function createJobProperty() {
let template = `
<p>
<label>Job Property</label><br>
<input name = "JobProperty[` + i + `][job_property]">
</p>`;
let container = document.getElementById('job-container');
let div = document.createElement('div');
div.innerHTML = template;
container.appendChild(div);
let input = container.querySelector("input[name='JobProperty["+i+"][job_property]']");
// do what ever you want with the input
definedLength=i;
i++;
}
Боюсь, ваш вопрос не ясен. С каким значением у вас возникли проблемы?