Я проверил этот скрипт на валидаторе w3 и проверял его без ошибок, но когда я пытаюсь вычислить что-то в корзине, нет вывода. Мне просто интересно, в чем проблема.
<script type=text/javascript>
function shoppingcart()
{
var TaxRate=0.10;
var Tax=0;
var Subtotal=0;
var Total=0;
var quantity=document.getElementById("quantity").value;
var price=document.getElementById("Choice").value;
SubTotal=Quantity*Price;
tax=SubTotal*Taxrate;
total=SubTotal+tax;
tax=tax.toFixed(2);
SubTotal=SubTotal.toFixed(2);
total=total.toFixed(2);
<!--data back to form-->
document.getElementById('subtotal').innerHTML="Subtotal="+subTotal;
document.getElementById('totalTax').innerHTML="Totaltax="+tax+"(@10)";
document.getElementById('total'). innerHTML="Total=" +total;
alert("CheckTotal")
}
</script>
</head>
<body>
<script type=text/javascript></script>
<form OnSubmit="shoppingcart()">
<h1>Shopping cart</h1>
Choose option
<select>
<option value="">Select </option>
<option value="$20">"spin classes $20</option>
<option value="$40"> "swimming lessons $40</option>
<option value="$10"> Boxersize $10</option>
<option value="$5"> protein shake $5</option>
</select>
<label for="session">Session:</label>
<input type="text" name="quantity" size="1" id="session">
<br>
<hr>
<div id="Subtotal">Subtotal:</div>
<div id="Tax">Tax:</div>
<div id="Total">Total:</div>
<hr>
<input type="submit" value="calculate"/>
</form>
Элементы, которые вы пытались записать, не отображаются в HTML-части вашего кода.
некоторые из них вообще не существуют, а некоторые имеют неправильную оболочку
Это мое предположение о том, что вы имели в виду:
document.getElementById('subtotal')
должен быть document.getElementById('Subtotal')
(с капиталом S) для соответствия имени элемента
document.getElementById('totalTax')
должен быть document.getElementById('Tax')
а также
document.getElementById('total')
должен быть document.getElementById('Total')
много ошибок в вашей программе, remenber javascript is casesenstive; ваше имя элемента элемента вместо id document.getElementById("quantity").value;
здесь количество - это имя не id
ваши ошибки в основном в количестве имен переменных, таких как количество, цена, цена, налоговая ставка как налог, итоговая сумма как сумма, количество в количестве
проверьте ниже код я исправить все ошибки
<script type=text/javascript>
function shoppingcart(){
var TaxRate=0.10;
var Tax=0;
var Subtotal=0;
var Total=0;
var quantity=Number(document.getElementById("session").value);
var price=Number(document.getElementById("Choice").value);
Subtotal=quantity*price;
tax=Subtotal*TaxRate;
total=Subtotal+tax;
Tax=Tax.toFixed(2);
Subtotal=Subtotal.toFixed(2);
Total=Total.toFixed(2);
<!--data back to form-->
document.getElementById('Subtotal').innerHTML="Subtotal="+Subtotal;
document.getElementById('Tax').innerHTML="Totaltax="+tax+"(@10)";
document.getElementById('Total'). innerHTML="Total=" +total;
}
</script>
</head>
<body>
<script type=text/javascript></script>
<form >
<h1>Shopping cart</h1>
Choose option
<select id="Choice">
<option value="">Select </option>
<option value="20">"spin classes $20</option>
<option value="40"> "swimming lessons $40</option>
<option value="10"> Boxersize $10</option>
<option value="5"> protein shake $5</option>
</select>
<label for="session">Session:</label>
<input type="text" name="quantity" size="1" id="session">
<br>
<hr>
<div id="Subtotal">Subtotal:</div>
<div id="Tax">Tax:</div>
<div id="Total">Total:</div>
<hr>
<input type="button" onClick="shoppingcart()" value="calculate"/>
</form>
Есть пара вещей, которые я замечаю в коде. Любой из них может быть проблемой.
1) var quantity = document.getElementById("количество"). Значение;
Я не вижу элемент с количеством id. Это имя, а не идентификатор. Идентификатор имени ввода - это сеанс.
2) Я не вижу идентификатор элемента с именем "choice". Возможно, вы забыли включить это. Помните, что getElementById ищет значения по "id", а не "name". Вам нужно будет убедиться, что вы получаете доступ к правильным "id".
как уже упоминалось
document.getElementById('subtotal').innerHTML="Subtotal="+subTotal;
document.getElementById('totalTax').innerHTML="Totaltax="+tax+"(@10)";
document.getElementById('total'). innerHTML="Total=" +total;
кто-то уже упоминал, что здесь есть проблемы. Идентификатор промежуточного итога на самом деле является итогом. Все чувствительно к регистру. Я не вижу идентификатор для totaltax. Я вижу одно для Налога, и я также не вижу id для общего числа, но для Total (обратите внимание на верхний регистр).
Ваша проблема, похоже, кроется в несоответствующих идентификаторах.
Имена переменных чувствительны к регистру. Вы определяете quantity
, price
, TaxRate
, Subtotal
... но используете Quantity
, Price
, Taxrate
, SubTotal
.