I have the following table that actually encapsulates a dynamic form. I need to select the specific .check class in Rmk column of the table and print Hello World
on blur()
event for any input field of that row.
It absolutely works fine until I create new rows. When I create a new row, it cannot select the class. Any help?
function myCreateFunction() {
var table = document.getElementById("myTable");
var c = document.getElementById("myTable").rows.length;
var row = table.insertRow(c);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
cell1.innerHTML = "<input type='text' class='lat' name='lat[]' /><span class='availability'></span>";
cell2.innerHTML = "<input type='text' class='long' name='long[]' /><span id='availability'></span>";
}
function myDeleteFunction() {
var cd = document.getElementById("myTable").rows.length;
if(cd<=3)
{
//do nothing
}
else{
document.getElementById("myTable").deleteRow(cd-1);
}
}
$('input').on('blur', function() {
var t = $(this);
t.closest('tr').find('.check').text('Hello World');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="form-handler.php" method="POST">
<table id="myTable">
<tr>
<th class="theader"> Lat </th>
<th class="theader"> Long </th>
<th class="theader"> Rmk </th>
</tr>
<tr>
<td class="troe"> <input type='text' class='lat' name='lat[]' /> </td>
<td class="trow"> <input type='text' class='long' name='long[]' /> </td>
<td class="trow">
<span class="check"></span>
</td>
</tr>
<tr>
<td class="troe"> <input type='text' class='lat' name='lat[]' /> </td>
<td class="trow"> <input type='text' class='long' name='long[]' /> </td>
<td class="trow">
<span class="check"></span>
</td>
</tr>
<tr>
<td class="troe"> <input type='text' class='lat' name='lat[]' /> </td>
<td class="trow"> <input type='text' class='long' name='long[]' /> </td>
<td class="trow">
<span class="check"></span>
</td>
</tr>
</table>
<button class="myBtn" type="submit" id='submit' name="submit" value="submit">submit</button>
</form>
<br/>
<button onclick="myCreateFunction()">Create New Row </button>
<button onclick="myDeleteFunction()">Delete Row</button>