2013-11-17 3 views
-2

Я пытаюсь запустить скрипт внутри формы, которая вычисляет скидку в зависимости от количества, которое выбирает пользователь. Форма представляется платежный шлюз, и должен включать этот тег:Используйте javascript для установки значения тега ввода

<input type="hidden" name="discount" value="0.00"/> 

Если изменения скидка значение в зависимости от выбора пользователя.

Так выглядит моя форма, но тег не отправляется должным образом. Я не знаю, что я делаю неправильно.

<select name="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"/> 

<script type="text/javascript"> 
<input type="hidden" name="discount" 
if (quantity==3) 
    { 
    value="5.00"; 
    } 
else if (quantity==2) 
    { 
    value="2.00"; 
    } 
else 
    { 
    value="0.00"; 
    } 
/> 
</script> 

Я так ничего, но я старался изо всех сил! Пожалуйста, помогите ...

+7

Вместо угадать, просто возьмите книгу и начните с * основ *. Это синтаксически просто неощутимый смысл. –

+0

Я не программирую в JS и просто пытался обходным путем к предыдущему вопросу, который был «невозможно ответить». На самом деле очень обидно читать ваши комментарии, когда вы не представляете, какие исследования я уже предпринял, чтобы исправить то, что я считал основной проблемой. Может быть, следует прочитать книгу об элементарной вежливости для новичков. – user2976186

+0

Это не меняет того факта, что вам нужно знать основы языка, прежде чем вы сможете что-либо с ним сделать. Также вы должны придерживаться своего вопроса и не начинать открывать новые темы после каждого комментария.Я не знаю, какие исследования вы сделали, но это, конечно же, не означало первую главу любой Javascript-книги. –

ответ

0

Вы, кажется, есть две основные проблемы:

  1. Вы объединить HTML и JavaScript в единый блок
  2. Вы не в состоянии гарантировать, что Ваш 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; 
+0

Ничего себе, это работает ... Спасибо! Я понимаю некоторые элементы, но это касается функций, которые я не знал, как использовать, поэтому я был только частично. Мне потребуется некоторое время для толкования и понимания, но я очень ценю ваш ответ и проголосую за ваш ответ, если смогу. – user2976186

+0

Добро пожаловать. Если вы принимаете ответ (щелкнув галочку слева), он будет сигнализировать другим, что они могут перестать беспокоиться об этом. –

Смежные вопросы