Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получать значения инпутов? (https://javascript.ru/forum/misc/61314-kak-poluchat-znacheniya-inputov.html)

Enkille 12.02.2016 22:46

Как получать значения инпутов?
 
Я начинающий, ознакомился с основами JS, читать можно бесконечно, поэтому решил начать практиковаться, но появились вопросы. А именно: я решил сделать небольшой калькулятор цен. При клике на input нужно возвращать его value.

Проблема в том, что мой код возвращает в priceValue значение 1-го input, и по клику на 2-й никак не реагирует (не возвращает новое значение). Как это правильно делается? Сижу уже 2-й день и не понимаю с какой стороны подойти.

<label><input class="price1" type="radio" name="price" value="3000">Шашечки (3000 руб)</label>
<label><input class="price1" type="radio" name="price" value="2000">Ехать (2000 руб)</label>
<div id="result"><div>

Сам код:
function doCalc(event) {
    event = event || window.event;
    var priceValue = document.querySelector(".price1").value;
    
    return document.getElementById("result").innerHTML = "<p>"+ priceValue +"</p>";
  }
  document.addEventListener("click", doCalc, false);


На этом калькуляторе я хотел бы попрактиковаться во всем чем можно, думаю тут можно напридумывать чего угодно, поэтому это будет моей лабораторной.

Спасибо за помощь!

destus 12.02.2016 23:01

Почему вы вызываете метод addEventListener для обьекта document?

рони 12.02.2016 23:04

Enkille,
priceValue = event.target.value;
конечно надо проверить есть ли нужный класс у event.target -- может и нет никакого value и будет ошибка

Enkille 13.02.2016 00:17

Цитата:

Сообщение от рони (Сообщение 407522)
Enkille,
priceValue = event.target.value;
конечно надо проверить есть ли нужный класс у event.target -- может и нет никакого value и будет ошибка

Ура, заработало, спасибо! Я подозревал что не хватало чего-то именно здесь. Я добавил это здесь:
var priceValue = document.querySelector(".price1").value;
priceValue = event.target.value;

Я правильно понимаю, что такую проверку нужно делать каждый раз для всех групп инпутов, где что-то считается подобным образом?

Цитата:

Почему вы вызываете метод addEventListener для обьекта document?
Вы хотите сказать что документ надо заменить на что-то другое?

рони 13.02.2016 00:30

Цитата:

Сообщение от Enkille
Я добавил это здесь:

заменить надо было


Часовой пояс GMT +3, время: 03:40.