Вы, кажется, есть две основные проблемы:
- Вы объединить HTML и JavaScript в единый блок
- Вы не в состоянии гарантировать, что Ваш JavaScript выполняется, когда пользователь изменяет количество
Ваш первый шаг должен состоять в том, чтобы отделить <input type="hidden" name="discount" />
от блока JavaScript. Это HTML, а не JavaScript, поэтому движок JavaScript не знает, что с ним делать.
<input type="hidden" name="discount" />
<script type="text/javascript">
if (quantity==3)
{
value="5.00";
}
else if (quantity==2)
{
value="2.00";
}
else
{
value="0.00";
}
</script>
Далее необходимо убедиться, что JavaScript выполняется, когда пользователь меняет количество. Чтобы сделать это, поместите свой код в имени функции и провода, что до onchange
случае, если quantity
элемент:
<script type="text/javascript">
function updateDiscount()
{
var select = document.getElementById("quantity");
var quantity = select.options[select.selectedIndex].value;
if (quantity==3)
{
value="5.00";
}
else if (quantity==2)
{
value="2.00";
}
else
{
value="0.00";
}
}
document.getElementById("quantity").onchange = updateDiscount;
</script>
Заметим, что мы теперь искать значение количества в JavaScript. Это опять же потому, что вы не можете просто смешать JavaScript и HTML так, как вы это делали. Для поиска работы вам нужно будет добавить атрибуты id
к вашим элементам с тем же значением, что и текущие атрибуты name
(которые необходимы при отправке формы).
С этими изменениями вы почти находитесь. Теперь вы устанавливаете скидку на переменную value
, в то время как вы хотите, чтобы она зашла в поле формы discount
. Чтобы получить это, вам нужно будет искать этот элемент и установить его значение, например:
document.getElementById("discount").value = value;
Полный HTML
<select name="quantity" id="quantity">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="hidden" name="amount" value="10.00"/>
<input type="hidden" name="discount" id="discount" />
Полный JavaScript
function updateDiscount()
{
var select = document.getElementById("quantity");
var quantity = select.options[select.selectedIndex].value;
if (quantity==3)
{
value="5.00";
}
else if (quantity==2)
{
value="2.00";
}
else
{
value="0.00";
}
document.getElementById("discount").value = value;
}
document.getElementById("quantity").onchange = updateDiscount;
Вместо угадать, просто возьмите книгу и начните с * основ *. Это синтаксически просто неощутимый смысл. –
Я не программирую в JS и просто пытался обходным путем к предыдущему вопросу, который был «невозможно ответить». На самом деле очень обидно читать ваши комментарии, когда вы не представляете, какие исследования я уже предпринял, чтобы исправить то, что я считал основной проблемой. Может быть, следует прочитать книгу об элементарной вежливости для новичков. – user2976186
Это не меняет того факта, что вам нужно знать основы языка, прежде чем вы сможете что-либо с ним сделать. Также вы должны придерживаться своего вопроса и не начинать открывать новые темы после каждого комментария.Я не знаю, какие исследования вы сделали, но это, конечно же, не означало первую главу любой Javascript-книги. –