Другое возможное решение состоит в том, чтобы каждый вход имел уникальный идентификатор, такой как rowId
:
<input type="text" name="test_type_val_${rowId}" id="test_type_val_${rowId}"/>
Затем вы можете добавить прослушиватель щелчка для кнопки, который увеличивает считать каждый раз, когда он нажал. Не забывайте уменьшать его при каждом удалении строки:
let button = document.getElementById("add");
button.addEventListener("click", (e) => {
addRow();
copyValue();
rowId++;
});
let rowId = 0;
let button = document.getElementById("add");
button.addEventListener("click", (e) => {
addRow();
copyValue();
rowId++;
});
function addRow() {
var table = document.getElementById("bod");
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var but = document.getElementById("submit_form");
row.insertCell(0).innerHTML = test_type.value;
row.insertCell(1).innerHTML =
'<input type="text" name="question[]" id="question" size="20"/>';
row.insertCell(2).innerHTML =
'<input type="button" value="Delete" onClick="Javacsript:deleteRow(this)"/>';
row.insertCell(
3
).innerHTML = `<input type="text" name="test_type_val[]" id="test_type_val_${rowId}"/>`;
}
function copyValue() {
var dropboxvalue = document.getElementById("test_type").value;
document.getElementById(`test_type_val_${rowId}`).value = dropboxvalue;
}
function deleteRow(obj) {
var index = obj.parentNode.parentNode.rowIndex;
var table = document.getElementById("bod");
table.deleteRow(index);
}
<select id="test_type" name="test_type">
<option value=""></option>
<option value="EASY">EASY</option>
<option value="MEDIUM">MEDIUM</option>
<option value="DIFFICULT">DIFFICULT</option>
</select>
<input type="button" id="add" name="add" value="Add" />
<br />
<table id="bod">
<tr>
<th>TEST TYPE</th>
<th>QUESTION</th>
<th>DELETE BUTTON</th>
<th>COPIED VALUE FROM DROPDOWN</th>
</tr>
</table>