我正在尝试在 JQuery 中实现自动计算,基本上有两个输入字段 qty 次 unitPrice 和 结果应显示为 dealPrice 输入框,我面临的问题是输入处于 while 循环中,我需要区分每个 ID,所以我 在所有三个类中使用“. $row1['prid'] .”。没有错误,但不知何故我无法让它工作。
$prid = array();
while ($row1 = mysql_fetch_array($result1,MYSQL_ASSOC){
$prid[] = $row1['prid'];
echo "<tr>
<td>".$row1["prdesc"]."</td>
<td><input type='text' class='qty". $row1['prid'] . "' name='epid_qty_". $row1['prid'] ."' value='". $row1['qty'] . "'></td>
<td><input type='text' class='unitPrice". $row1['prid'] . "' name='epid_unitprice_". $row1['unitprice'] ."' value='". $row1['unitprice'] . "'></td>
<td><input type='text' class='dealPrice". $row1['prid'] . "' name='epid_drp_". $row1['prid'] . "' value='". $row1['deal_reg_price'] . "'> </td>";
}
$(document).ready(function(){
var arr = <?php echo '["' . implode('", "', $prid) . '"]' ?>;
var pid = [];
for (var i = 0; i < arr.length; i++) {
pid[i] = arr[i];
}
console.log(pid);
$('input[class="unitPrice'+ pid +'"]').keyup(function()
{
var a = $('input[class="qty'+ pid +'"]').val();
var b = $(this).val();
$('input[class="dealPrice'+ pid +'"]').val(parseInt( a * b));
});
});
Console output of pid;
{["27", "20", "19", ...]}
最佳答案
这里的主要问题是,您将 pid
变量设置为数组,然后尝试使用它,就好像它不是数组一样。
为了使代码符合逻辑,您需要在指定 key-up 函数的代码部分放置一个 for 循环。像这样:
for(var i = 0; i < pid.length; i++) {
var pidNo = pid[i];
$('input[class="unitPrice'+ pidNo +'"]').keyup(function(){
var a = $('input[class="qty'+ pidNo +'"]');
var b = $(this).val();
$('input[class="dealPrice'+ pidNo +'"]').val(parseInt( a.val() * b));
});
}
关于javascript - 无法让 JQuery 自动计算与 PHP 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33070964/