Javascript 如何使onkeyup在下一行工作?
案例: 我创建了一个表单输入,其中显示每堂课的所有学生,并逐个输入他们的值。我成功地创建了onkeyup来计算(N.Akhir)以获得期望值。但这只在第一行起作用,在下一行不起作用。 如何使onkeyup在下一行工作 我正在使用codeigniter和javascript来实现这一点 请参阅下面我的代码:Javascript 如何使onkeyup在下一行工作?,javascript,php,codeigniter,Javascript,Php,Codeigniter,案例: 我创建了一个表单输入,其中显示每堂课的所有学生,并逐个输入他们的值。我成功地创建了onkeyup来计算(N.Akhir)以获得期望值。但这只在第一行起作用,在下一行不起作用。 如何使onkeyup在下一行工作 我正在使用codeigniter和javascript来实现这一点 请参阅下面我的代码: 函数hitung2(){ var a=$(“#tt1”).val(); var b=$(“#tt2”).val(); var c=$(“#tt3”).val(); ntt=(parseInt
函数hitung2(){
var a=$(“#tt1”).val();
var b=$(“#tt2”).val();
var c=$(“#tt3”).val();
ntt=(parseInt(a)+parseInt(b)+parseInt(c))/3;
ntt=ntt.toFixed(2);
$(“ntt”).val(ntt);
var d=$(“#ntt”).val();
var e=$(“#np”).val();
f=(帕塞因特(e)*3+帕塞因特(d)*7)/10
$(“#na”).val(f);
}
不
纳米
总哈迪尔
TT 1
TT 2
TT 3
N.RATA“
党参
N.AKHIR
首先,不要为几个dom元素分配相同的id。这与“id”的含义相矛盾,而是使用类
其次,将对象本身作为参数传递,以便可以检测函数中的整行
因此,您的整个代码可以更新如下:
function hitung2(obj) {
var $row = $(obj).closest('.row');
var a = $row.find(".tt1").val();
var b = $row.find(".tt2").val();
var c = $row.find(".tt3").val();
ntt = (parseInt(a) + parseInt(b) + parseInt(c)) /3;
ntt = ntt.toFixed(2);
$row.find(".ntt").val(ntt);
var d = $row.find(".ntt").val();
var e = $row.find(".np").val();
f = (parseInt(e)*3 + parseInt(d)*7) /10
$row.find(".na").val(f);
}
<table class="table table-hover">
<tr>
<th>No</th>
<th>NAMA</th>
<th>TOTAL HADIR</th>
<th>TT 1</th>
<th>TT 2</th>
<th>TT 3</th>
<th>N.RATA"</th>
<th>N.PARTISIPASI</th>
<th>N.AKHIR</th>
</tr>
<?php
if(isset($ambil_data)>0){$i=1; foreach($ambil_data as $row) {
?>
<tr class="row">
<td><?php echo $i; ?></td>
<td><?php echo $row->nama; ?></td>
<td><input type="text" class="form-control jml_hadir" id="jml_hadir_<?php echo $i; ?>" maxlength="1" name="jml_hadir" placeholder="Hadir" /><?php echo form_error('jml_hadir'); ?></td>
<td><input type="text" class="form-control tt1" id="tt1_<?php echo $i; ?>" placeholder="TT1" maxlength="5" name="tt1" onkeyup="hitung2(this)" /><?php echo form_error('tt1'); ?></td>
<td><input type="text" class="form-control tt2" id="tt2_<?php echo $i; ?>" placeholder="TT1" maxlength="5" name="tt2" onkeyup="hitung2(this)" /><?php echo form_error('tt2'); ?></td>
<td><input type="text" class="form-control tt3" id="tt3_<?php echo $i; ?>" placeholder="TT1" maxlength="5" name="tt3" onkeyup="hitung2(this)" /><?php echo form_error('tt3'); ?></td>
<td><input type="text" class="form-control ntt" id="ntt_<?php echo $i; ?>" name="ntt" readonly /></td>
<td><input type="text" class="form-control np" id="np_<?php echo $i; ?>" placeholder="N.Partisipasi" name="np" onkeyup="hitung2(this)"/><?php echo form_error('np'); ?></td>
<td><input type="text" class="form-control na" id="na_<?php echo $i; ?>" name="na" readonly /></td>
</tr>
<?php $i++;}}?>
</form>
</table>
功能hitung2(obj){
var$row=$(obj).closest('.row');
var a=$row.find(“.tt1”).val();
var b=$row.find(“.tt2”).val();
var c=$row.find(“.tt3”).val();
ntt=(parseInt(a)+parseInt(b)+parseInt(c))/3;
ntt=ntt.toFixed(2);
$row.find(“.ntt”).val(ntt);
var d=$row.find(“.ntt”).val();
var e=$row.find(“.np”).val();
f=(帕塞因特(e)*3+帕塞因特(d)*7)/10
$row.find(“.na”).val(f);
}
不
纳米
总哈迪尔
TT 1
TT 2
TT 3
N.RATA“
党参
N.AKHIR
这是因为您需要具有唯一的id值或使用类来隔离行。然后,您需要使用$(this)
@uchuneno引用这些孤立的行。那你也能投我的票吗D