您好我创建了一个零行的表和一个“添加行按钮”,当用户点击“添加行按钮”时,使用javascript创建该表的一个额外行。在表格行中,我创建了三个输入字段作为名称,地址和手机号码。现在我想,当用户更改移动号码时,jquery必须调用如下所示,但它现在正在工作我该怎么办?
用于创建表行和jquery的代码,该代码无法正常工作。
<form action "..." mehtod="post">
<table id="table1">
<thead>
<tr>
<th>name</th>
<th>address</th>
<th>mobile</th>
</tr>
</thead>
<tbody>
</table>
<button id="insertrowbutton" type="button" float: right;" onclick="insertrow()">Insert new row</button>
<input type="submit" value="submit" name="submit">
</form>
<script>
function insertrow() {
document.getElementById("table1").insertRow(-1).innerHTML = '<td> <input type="text" name="name[]"> </td><td> <input type="text" name="address[]"></td> <td><input type="number" name="mobile[]"</td>
}
</script>
<script type="text/javascript">
$('input[name^="mobile"]').on('change', function() {
alert($(this).val());
});
</script>
答案 0 :(得分:0)
您一直在创建新元素,因此更改处理程序不会绑定到它们。请尝试这样做,这将确保应用更改侦听器。
$(document).on('change', 'input[name^="mobile"]',function() {
alert($(this).val());
});
答案 1 :(得分:0)
使用它,它将起作用:
$(document).on('change', 'input[name^="mobile"]', function() {
alert($(this).val());
});
请注意,您的按钮float: right;"
<强>演示强>
function insertrow() {
document.getElementById("table1").insertRow(-1).innerHTML = '<td> <input type="text" name="name[]"> </td><td> <input type="text" name="address[]"></td> <td><input type="number" name="mobile[]"</td>'
}
$(document).on('change', 'input[name^="mobile"]', function() {
alert($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action "..." mehtod="post">
<table id="table1">
<thead>
<tr>
<th>name</th>
<th>address</th>
<th>mobile</th>
</tr>
</thead>
<tbody>
</table>
<button id="insertrowbutton" type="button" onclick="insertrow()">Insert new row</button>
<input type="submit" value="submit" name="submit">
</form>