#javascript #html #jquery
Вопрос:
я хотел бы знать, могу ли я вставить данные в следующую строку таблицы после вставки данных в предыдущую ячейку.
<form class="ml-4 mb-4 mt-2 needs-validation" action="/tabledata" method="POST">
<table id='tbl'>
<thead>
<tr class="Headerrow">
<th class="col-2">Account Number</th>
<th class="col-2">Acount Name</th>
<th class="col-2">Description</th>
<th class="col-2">Debit</th>
<th class="col-2">Credit</th>
<th class="col-2">Amount(USD)</th>
</tr>
</thead>
<tbody>
<tr name="" class =" DataRow ankita trbar ">
<td><input class="input " name="Account" id="" list="accountnumber" type="text" /></td>
<td><input class="input" name="AcountName" id="" type="text" /></td>
<td><input class="input" name="Description" id="" type="text" /></td>
<td><input class="input" name="Debit" id="" type="text" /></td>
<td><input class="input" name="Credit" id="" type="text" /></td>
<td><input class="input" name="Amount" id="" type="text" /></td>
<datalist id="accountnumber">
<option>101001</option>
<option>101002</option>
<option>101003</option>
<option>168001</option>
</datalist>
</tr>
</tbody>
</table>
<input type="submit" id="btnFirstGenerateJson" value="submit" class="btn btn-primary m-2 ">
</form>
допустим,я вставил первый td «Номер учетной записи», основанный на datalist, я хочу, чтобы следующий td «Имя учетной записи» проверял значение и динамически добавлял данные на основе этого выбора, и если это можно сделать в обратном направлении, я вставляю имя учетной записи, и учетная запись вставляется автоматически.
любая ссылка будет полезной, спасибо
Комментарии:
1. Спасибо за подробный ответ, это сработало
Ответ №1:
Вы можете добавить функцию для извлечения ваших данных и нарисовать новую строку со значениями. В примере функция retrieveAccountData
должна быть заменена необходимой логикой.
function insertTableRow()
{
var new_row = document.createElement("tr");
var account_number = $('.DataRow [name="Account"]').val()
var data = retrieveAccountData(account_number);
data.forEach(function(item) {
var new_col = document.createElement("td");
$(new_col).html(item);
$(new_row).append(new_col);
});
$('#tbl tbody').append(new_row);
return false;
}
function retrieveAccountData(account_number)
{
// Insert your logic in this function
// to return an array
// example:
if(account_number == "101001") {
return [
"101001",
"Whatever Name",
"Whatever Desc",
10,
20,
5
];
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form class="ml-4 mb-4 mt-2 needs-validation" action="/tabledata" method="POST">
<table id='tbl'>
<thead>
<tr class="Headerrow">
<th class="col-2">Account Number</th>
<th class="col-2">Acount Name</th>
<th class="col-2">Description</th>
<th class="col-2">Debit</th>
<th class="col-2">Credit</th>
<th class="col-2">Amount(USD)</th>
</tr>
</thead>
<tbody>
<tr name="" class =" DataRow ankita trbar ">
<td><input class="input " name="Account" id="" list="accountnumber" type="text" /></td>
<td><input class="input" name="AcountName" id="" type="text" /></td>
<td><input class="input" name="Description" id="" type="text" /></td>
<td><input class="input" name="Debit" id="" type="text" /></td>
<td><input class="input" name="Credit" id="" type="text" /></td>
<td><input class="input" name="Amount" id="" type="text" /></td>
<datalist id="accountnumber">
<option>101001</option>
<option>101002</option>
<option>101003</option>
<option>168001</option>
</datalist>
</tr>
</tbody>
</table>
<input type="submit" id="btnFirstGenerateJson" onclick="insertTableRow(); return false;" class="btn btn-primary m-2 ">
</form>
Комментарии:
1. Идеально, вот что мне было нужно
Ответ №2:
<td><input class="input " name="Account" id="" list="accountnumber" type="text" (input)="document.getElementByName("AccountName").value=document.getElementByName("Account").value"/></td>
<td><input class="input" name="AcountName" id="" type="text" (input)="document.getElementByName("Account").value=document.getElementByName("AccountName").value"/></td>
Надеюсь, это ответ на ваш вопрос