3つの入力で完全に実行される自動更新合計フォームがあります。しかし、計算するにはもう 1 つの入力が必要です。フィールドを追加してスクリプトを模倣しようとしましたが、うまくいきませんでした。助けてください。
function formatDollar(num) {
var p = num.toFixed(2).split(".");
return "" + p[0].split("").reverse().reduce(function(acc, num, i, orig) {
return num + (i && !(i % 3) ? "," : "") + acc;
}, "");
}
//auto sum
function calculateDiscount()
{
var cost = document.getElementById('insr_total1').value.replace(/[^0-9]+/i,"");
cost = cost.replace(/[^0-9]+/i,"");
var discount = document.getElementById('insr_discount').value;
//do the math
var net = cost-discount;
//update
document.getElementById('insr_discount2').innerHTML = formatDollar(cost*(discount/100));
document.getElementById('insr_total3').value = formatDollar(cost-cost*(discount/100));
}
そして、これは私が使用するhtmlです:
<table>
<tr>
<td align="left" valign="top">Cost1</td>
<td align="left" valign="top"><input type="text" name="insr_total1" id="insr_total1" size="17" maxlength="15" onKeyup="calculateDiscount(); return false;" /> USD</td>
</tr>
<tr>
<td align="left" valign="top">Discount</td>
<td align="left" valign="top"><input type="text" name="insr_discount" id="insr_discount" size="4" maxlength="3" onkeyup="calculateDiscount(); return false;" /> % (<span id="insr_discount2" style="color:green; font-size: 13px;"></span> USD)</td>
</tr>
<tr>
<td align="left" valign="top">Cost 2</td>
<td align="left" valign="top"><input type="text" name="insr_total2" id="insr_total2" size="17" maxlength="15" /> USD</td>
</tr>
<tr>
<td align="left" valign="top">Overall</td>
<td align="left" valign="top"><input type="text" name="insr_total3" id="insr_total3" size="17" readonly maxlength="15" /> USD</td>
</tr>
</table>
さて、insr_total3 から減算するには「insr_total2」が必要です。私が試しても、常にエラーが発生します。すべての返信に感謝します。