Javascript 试图更改“上的值”;onchange";事件,它只更新第一个而不是第二个

Javascript 试图更改“上的值”;onchange";事件,它只更新第一个而不是第二个,javascript,php,Javascript,Php,当我试图更改onchange函数的值时,它只更新第一个而不是第二个。我想手动更改值。在这个问题中,你会看到2和2等于4,但当我想改变第二行,如图4所示,乘以4等于16。当将4更改为5时,则其冲突的第一行我希望在同一行中进行更改。请帮忙解决这个问题 test.php <html> <title> Test </title> <script type="text/javascript"> function taxapply(){ var one=doc

当我试图更改onchange函数的值时,它只更新第一个而不是第二个。我想手动更改值。在这个问题中,你会看到2和2等于4,但当我想改变第二行,如图4所示,乘以4等于16。当将4更改为5时,则其冲突的第一行我希望在同一行中进行更改。请帮忙解决这个问题

test.php

<html>
<title>
Test
</title>
<script type="text/javascript">
function taxapply(){
var one=document.getElementById('one').value;
//alert(one);
var two=document.getElementById('two').value;
//alert(two);
var equal=one*two;
document.getElementById('equal').innerHTML=equal.toFixed(2);
document.getElementById('equals').value=equal.toFixed(2);
alert(equal);
}

</script>
<body>
<?php
require_once('DB.class.php'); 
$db = new DB();
$db->connect();
$result=$db->SelectTable("multiple","","");
?>
<table class=" table table-bordered table-hover" border="1" align="center" width="50%">
<tr>
<th><strong>Sr.No.</strong></th>
<th>one</th>
<th>two</th>
<th>Equal</th>                              
</tr>       
<?php
if(count($result) > 0)
{
foreach($result as $rslist12){
?>
<tr>
<?php $i =$i+1;
?>
<td align="center" ><?php echo $i;?></td>
<td align="center"><input type="text" name="one" id="one"  style="width:60px;" value="<?php echo $rslist12['one'];?>" onchange="taxapply()";></td>
<td align="center" ><input type="text" name="two" id="two"  style="width:60px;" value="<?php echo $rslist12['two'];?>" onchange="taxapply()";></td>
<td align="center" ><label id="equal"><input type="text" name="equal" id="equal" style="width:50px;"   value="<?php echo $rslist12['equal'];?>" onchange="taxapply()";></label></td>
</tr>
<?php
}
}
?>  
</table>
</body>
<html>  

您有多个相同值的id,在本例中,浏览器将拾取具有该id的第一个元素

在您的问题中,id为“1”和“2”的元素多次出现

document.getElementById('one')。value
将始终获取第一个具有'one'id的元素


因此,要么使id成为动态的,要么使用
这个
参数将对象传递给
taxapply
函数来引用这些元素

您可以使用下面的代码作为动态id

<script type="text/javascript">
function taxapply(i){
    var one=document.getElementById('one'+i).value;
    //alert(one);
    var two=document.getElementById('two'+i).value;
    //alert(two);
    var equal=one*two;
    document.getElementById('equal'+i).innerHTML=equal.toFixed(2);
    document.getElementById('equals').value=equal.toFixed(2);
    alert(equal);
}
</javascript>

功能(一){
var one=document.getElementById('one'+i).value;
//警报(一);
var two=document.getElementById('two'+i).value;
//警觉(二);;
var=1*2;
document.getElementById('equal'+i).innerHTML=equal.toFixed(2);
document.getElementById('equals')。value=equal.toFixed(2);
警惕(相等);
}
这是您的HTML代码

<td align="center" ><?php echo $i;?></td>
<td align="center">
    <input type="text" name="one" id="one<?php echo $i;?>" style="width:60px;" value="<?php echo $rslist12['one'];?>" onchange="taxapply(<?php echo $i;?>)";>
</td>
<td align="center" >
    <input type="text" name="two<?php echo $i;?>" id="two"  style="width:60px;" value="<?php echo $rslist12['two'];?>" onchange="taxapply(<?php echo $i;?>)";>
</td>
<td align="center" >
    <input type="text" name="equal" id="equal<?php echo $i;?>" style="width:50px;" value="<?php echo $rslist12['equal'];?>" onchange="taxapply(<?php echo $i;?>)";>
</td>
</tr>


试验
功能taxapply(obj){
变量id=对象id;
var idNo=id.substr(id.indexOf('-')+1);
var one=document.getElementById('one-'+idNo).value;
var two=document.getElementById('two-'+idNo).value;
var=1*2;
document.getElementById('equal-'+idNo).innerHTML=equal.toFixed(2);
document.getElementById('equals-'+idNo).value=equal.toFixed(2);
}
Sr.No.
一
二
相等的

您的
$i
变量未正确启动您的网页中有两个id值相同的元素您可以使用
onchange=“taxapply(“”)”
<script type="text/javascript">
function taxapply(i){
    var one=document.getElementById('one'+i).value;
    //alert(one);
    var two=document.getElementById('two'+i).value;
    //alert(two);
    var equal=one*two;
    document.getElementById('equal'+i).innerHTML=equal.toFixed(2);
    document.getElementById('equals').value=equal.toFixed(2);
    alert(equal);
}
</javascript>
<td align="center" ><?php echo $i;?></td>
<td align="center">
    <input type="text" name="one" id="one<?php echo $i;?>" style="width:60px;" value="<?php echo $rslist12['one'];?>" onchange="taxapply(<?php echo $i;?>)";>
</td>
<td align="center" >
    <input type="text" name="two<?php echo $i;?>" id="two"  style="width:60px;" value="<?php echo $rslist12['two'];?>" onchange="taxapply(<?php echo $i;?>)";>
</td>
<td align="center" >
    <input type="text" name="equal" id="equal<?php echo $i;?>" style="width:50px;" value="<?php echo $rslist12['equal'];?>" onchange="taxapply(<?php echo $i;?>)";>
</td>
</tr>
    <html>
    <title>
    Test
    </title>
    <script type="text/javascript">
    function taxapply(obj){
        var id = obj.id;
        var idNo = id.substr(id.indexOf('-')+1);
    var one=document.getElementById('one-'+idNo).value;
    var two=document.getElementById('two-'+idNo).value;
    var equal=one*two;
    document.getElementById('equal-'+idNo).innerHTML=equal.toFixed(2);
    document.getElementById('equals-'+idNo).value=equal.toFixed(2);
    }

    </script>
    <body>
    <?php
    require_once('DB.class.php'); 
    $db = new DB();
    $db->connect();
    $result=$db->SelectTable("multiple","","");
    ?>
    <table class=" table table-bordered table-hover" border="1" align="center" width="50%">
    <tr>
    <th><strong>Sr.No.</strong></th>
    <th>one</th>
    <th>two</th>
    <th>Equal</th>                              
    </tr>       
    <?php
    if(count($result) > 0)
    {
    $i=0;
    foreach($result as $rslist12){
    ?>
    <tr>
    <?php 
    $i =$i+1;
    ?>
    <td align="center" ><?php echo $i;?></td>
    <td align="center"><input type="text" name="one" id="one-<?php echo $i; ?>"  style="width:60px;" value="<?php echo $rslist12['one'];?>" onchange="taxapply(this)";></td>
    <td align="center" ><input type="text" name="two" id="two-<?php echo $i; ?>"  style="width:60px;" value="<?php echo $rslist12['two'];?>" onchange="taxapply(this)";></td>
    <td align="center" ><label id="equal-<?php echo $i; ?>"><input type="text" name="equal" id="equals-<?php echo $i; ?>" style="width:50px;"   value="<?php echo $rslist12['equal'];?>" onchange="taxapply(this)";></label></td>
    </tr>
    <?php
    }
    }
    ?>  
    </table>
    </body>
    <html>