Я пытаюсь создать калькулятор наконечника с использованием HTML и Javascript, и каждый раз, когда пользователь меняет поле ввода для стоимости еды и количества наконечника, я должен проверить, является ли это числом, и если это есть, я должен сократить число до двух знаков после запятой.Поле ввода не обновляется
<script>
function validateMealCost(mealCharge){
var mealCost = document.getElementById(mealCharge).value;
if (isNaN(mealCost)){
alert("The cost of the meal has to be a number.");
location.reload();
}
mealCost = mealCost.toFixed(2);
return mealCost;
}
function validateTipPercent(tipPercent){
var tipPercent = document.getElementById(tipPercent).value;
if (isNaN(tipPercent)){
alert("The tip percentage has to be a number.");
location.reload();
}
if (tipPercent >= 1.0){
alert("You are very generous.");
}
tipPercent = tipPercent.toFixed(2);
return tipPercent;
}
function calculateTipAmount(mealCharge, tipPercent){
var tipAmount;
var mealCost = document.getElementById(mealCharge);
var tipPercentage = document.getElementById(tipPercent);
tipAmount = mealCost * tipPercentage;
document.getElementById('tipAmount').value = tipAmount;
}
</script>
<input type="text" id="mealCharge" onchange="validateMealCost('mealCharge');" />
<input type="text" id="tipPercentage" onchange="validateTipPercent('tipPercentage');" />
<button onclick="calculateTipAmount('mealCharge','tipPercentage');">Calculate</button>
<input type="text" id="tipAmount" style="text-align: right;"/>
Я не думаю, что оно принимает значения, отредактированные с помощью toFixed(), а также поле tipAmount показывает NaN. Как я могу исправить эти ошибки?
также - когда вы получаете процент опроса - вам не нужно будет делить это на 100, чтобы получить процент. На данный момент, если заказ составляет 10 долларов, и вы вводите 10 в наконечник, тогда ожидаемый результат будет 10 * 10, а не 10 * 0,10. – gavgrif
@gavgrif, я добавлю ярлык, чтобы показать «тип в десятичной форме». Благодарю. – Bob
Моей точкой было бы то, что эта строка неверна «tipAmount = mealCost * tipPercentage» - это должен быть «tipAmount = mealCost * (tipPercentage/100)»; то вы можете сделать «mealCost + = tipAmount», чтобы включить обновленную подсказку с плюсом mela. – gavgrif