用JavaScript实现前端原币不含税金额、税额可改上下5分钱,超出后提示:不含税金额、税额调整请在原金额的5分钱以内
时间: 2024-05-02 21:18:18 浏览: 149
人民币小写金额转大写金额(java版)
5星 · 资源好评率100%
以下是一个基于JavaScript的示例代码,用于实现前端原币不含税金额、税额可改上下5分钱的功能:
```javascript
// 获取元素
var amountInput = document.getElementById("amount-input");
var taxInput = document.getElementById("tax-input");
// 监听金额输入框的变化
amountInput.addEventListener("input", function() {
// 获取原始金额和税额
var originalAmount = parseFloat(amountInput.value);
var taxAmount = parseFloat(taxInput.value);
// 计算新的税前金额和税额
var newAmount = Math.round(originalAmount * 100) / 100;
var newTax = Math.round(taxAmount * 100) / 100;
// 如果税前金额发生了变化
if (newAmount !== originalAmount) {
// 计算税额的上限和下限
var maxTax = Math.round((newAmount - 0.05) * 0.13 * 100) / 100;
var minTax = Math.round((newAmount + 0.05) * 0.13 * 100) / 100;
// 如果新的税额超出了上限或下限
if (newTax < minTax || newTax > maxTax) {
// 提示用户不含税金额、税额调整请在原金额的5分钱以内
alert("不含税金额、税额调整请在原金额的5分钱以内");
// 将税前金额和税额还原为原来的值
amountInput.value = originalAmount;
taxInput.value = taxAmount;
return;
}
// 计算新的税前金额和税额
newAmount = Math.round(newAmount * 100) / 100;
newTax = newAmount * 0.13;
newTax = Math.round(newTax * 100) / 100;
// 更新税前金额和税额的显示
amountInput.value = newAmount.toFixed(2);
taxInput.value = newTax.toFixed(2);
}
});
// 监听税额输入框的变化
taxInput.addEventListener("input", function() {
// 获取原始金额和税额
var originalAmount = parseFloat(amountInput.value);
var taxAmount = parseFloat(taxInput.value);
// 计算新的税前金额和税额
var newAmount = Math.round(originalAmount * 100) / 100;
var newTax = Math.round(taxAmount * 100) / 100;
// 如果税额发生了变化
if (newTax !== taxAmount) {
// 计算税前金额的上限和下限
var maxAmount = Math.round((newTax + 0.05) / 0.13 * 100) / 100;
var minAmount = Math.round((newTax - 0.05) / 0.13 * 100) / 100;
// 如果新的税前金额超出了上限或下限
if (newAmount < minAmount || newAmount > maxAmount) {
// 提示用户不含税金额、税额调整请在原金额的5分钱以内
alert("不含税金额、税额调整请在原金额的5分钱以内");
// 将税前金额和税额还原为原来的值
amountInput.value = originalAmount;
taxInput.value = taxAmount;
return;
}
// 计算新的税前金额和税额
newAmount = newTax / 0.13;
newAmount = Math.round(newAmount * 100) / 100;
newTax = Math.round(newTax * 100) / 100;
// 更新税前金额和税额的显示
amountInput.value = newAmount.toFixed(2);
taxInput.value = newTax.toFixed(2);
}
});
```
在以上代码中,我们首先通过`document.getElementById()`方法获取了原币不含税金额输入框和税额输入框的元素,然后分别对它们进行了监听。在输入框的`input`事件中,我们通过`parseFloat()`方法获取了输入框中的原始金额和税额,并计算出了它们的新值。然后我们根据新的原始金额或税额的变化,计算出了税额或原始金额的上限和下限,并判断新的税额或原始金额是否超出了这个范围。如果超出了范围,我们就弹出一个提示框,并将输入框中的值还原为原来的值。如果没有超出范围,我们就根据新的原始金额或税额的值,计算出新的税额或原始金额的值,并更新输入框的显示。最后,我们将这个代码应用到原币不含税金额和税额的输入框中,即可实现前端原币不含税金额、税额可改上下5分钱的功能。
阅读全文