我有一个PHP表单,用于更新来自数组的记录,我正在测试一个按钮,以显示出现的记录中的当前名称,但我的问题是第1行记录始终通过即使我点击我的数组中的另一行。
我有一个简单的表格:
<form id="update_form">
<div class="row">
<div class="col">
<label>Name</label>
<input type="text" name="fnameupdate" id="fnameupdate" class="form-control fnameupdate" value="<?php echo $row['Firstname'] ?>" />
</div>
</div>
</form>
<button name="updaterecord" id="updaterecord" class="btn btn-success omhformupdate floatleft"><i class="material-icons floatleft">add_circle</i><div>Update Appointment</div></button>
单击该按钮时,这是被触发的事件:
<script>
$(document).ready(function(){
$('.omhformupdate').click(function(){
var nameupdate = $('#fnameupdate').val();
window.alert(nameupdate);
});
});
</script>
警报确实会触发但是只有第一行会一直返回,即使已经选择了另一行,导致这种情况的原因是什么?
答案 0 :(得分:1)
首先,ID必须是唯一的,ID选择器只选择具有该ID的页面上的第一个元素。你应该使用类选择器。
其次,如果您希望输入的值在按钮之前,则需要使用DOM遍历方法来查找它,而不仅仅是具有该类的任何元素。
$(document).ready(function() {
$('.omhformupdate').click(function() {
var nameupdate = $(this).prev().find('.fnameupdate').val();
window.alert(nameupdate);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="update_form">
<div class="row">
<div class="col">
<label>Name</label>
<input type="text" name="fnameupdate" id="fnameupdate" class="form-control fnameupdate" value="" />
</div>
</div>
</form>
<button name="updaterecord" id="updaterecord" class="btn btn-success omhformupdate floatleft"><i class="material-icons floatleft">add_circle</i><div>Update Appointment</div></button>