Quiero actualizar una entrada id="total_fee" al cambiar los valores en los campos de entrada.
Este es mi HTML;
<td class="'.$bg_trow.$challan_created_shade.'" align="center"> <div> <div style="font-size: 11px;">Actual Fee</div> <input type="text" class="small_input_box" id="actual_fee_'.$f['fid'].'" style="background: #EFEFEF; border: 1px solid #000; color: #000;" name="actual_fee" size="5" value="1400" readonly="readonly"> </div> <div> <div style="font-size: 11px;">Monthly Fee</div> <input onchange="findTotal_'.$f['fid'].'()" type="text" class="small_input_box fee_'.$f['fid'].'" name="monthly_fee" size="5" value="1000"> </div> </td> <td class="'.$bg_trow.$challan_created_shade.'" align="center"> <div> <div style="font-size: 11px;">Paper Money</div> <input onchange="findTotal_'.$f['fid'].'()" type="text" class="small_input_box fee_'.$f['fid'].'" name="paper_money_fee" size="5" value=""> </div> <div> <div style="font-size: 11px;">Previous Balance</div> <input onchange="findTotal_'.$f['fid'].'()" type="text" class="small_input_box fee_'.$f['fid'].'" name="previous_balance" size="5" value=""> </div> </td> <td class="'.$bg_trow.$challan_created_shade.'" align="center"> <div> <div style="font-size: 11px;">Total Fee</div> <input type="text" class="small_input_box" style="background: #EFEFEF; border: 1px solid #000; color: #000;" name="total_fee" id="total_fee_'.$f['fid'].'" size="5" value="" readonly="readonly"> </div> </td>y esta es mi función de JavaScript;
function findTotal_'.$f['fid'].'() { const fees = document.querySelectorAll(".fee_'.$f['fid'].'"); const total = document.querySelector("#total_fee_'.$f['fid'].'"); let sum = 0; fees.forEach((fee) => { if (fee.valueAsNumber) { sum += fee.valueAsNumber; } }); total.value = sum; }Cuando los valores se cambian en el campo de entrada, devuelve cero. no sé por qué Ayuda por favor
Puede usar fee.value en lugar de fee.valueAsNumber y también debe usar identificadores válidos (nombre) para sus funciones, es decir. el nombre findTotal_'.$f['fid'].' no es una válida.
De acuerdo..
Lo he hecho yo mismo, cambiando la función javascript a esto;
function findTotal_'.$f['fid'].'() { const fees = document.querySelectorAll(".fee_'.$f['fid'].'"); const total = document.querySelector("#total_fee_'.$f['fid'].'"); let sum = 0; fees.forEach(fee => { if(fee.value) { sum += + fee.value; } }); total.value = sum; }Gracias a todos.