@lesmanora

Почему не работает калькулятор?

Ни в какую не хочет считать калькулятор.

Форма:

spoiler

<form>
    	
    	       <div class="form-group">
    <label>Стоимость</label>
      <input type="text" class="form-control3" id="summa" value="1000" >
  </div>
        
        
        <div class="form-group">
            
            <label for="amount-sample-4">Страна:</label>
        
        <div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="rossia" value="0" checked>
  <label class="form-check-label" for="rossia">
    Россия
  </label>
</div>

<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="drstrana" value="600" checked>
  <label class="form-check-label" for="drstrana">
    Другая страна
  </label>
</div>
</div>

<div class="form-group">

            <label for="name-sample-4">Адрес:</label>
            <div>
                <input id="name-sample-4" required="" placeholder="" class="form-control" type="text" value="Walter" size="30">
            </div>
        </div>


        <div class="form-group">
            
            <label for="amount-sample-4">Доставка:</label>
        
        <div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios1" id="pochta" value="600" checked>
  <label class="form-check-label" for="pochta">
    Почта России
  </label>
</div>

<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios1" id="kurier" value="0" checked>
  <label class="form-check-label" for="kurier">
    Курьерская доставка
  </label>
</div>
    	
    	<br/>
  
        <div>Стоимость дизайна сайта: <span id="result">0</span> руб.</div>
        
        
    </form>



Скрипт:

spoiler

function calc() {
         

            var result = document.getElementById("result"); 
            
            var summa = document.getElementById("summa");
            
            var rossia = document.getElementById("rossia");
            var drstrana = document.getElementById("drstrana");
            
            var pochta = document.getElementById("pochta");
            var kurier = document.getElementById("kurier");

            var price = 0;
            
            
            //Результаты выбора

var result = document.getElementById("summa");

var result = document.getElementById("rossia");
var result = document.getElementById("drstrana");

var result = document.getElementById("pochta");
var result = document.getElementById("kurier");

 //Общий результат
var result = document.getElementById("result");

//Цена для выбора по умолчанию

var summa = 0;

var rossia = 0;
var pochta = 0;

var kurier = 0;
var result = 0;  

//Общая цена
var price = 0;


summa += parseInt(summa.value);         
        
            rossia += (rossia.checked == true) ? parseInt(rossia.value) : 0;
            drstrana += (drstrana.checked == true) ? parseInt(drstrana.value) : 0;
            
            pochta += (pochta.checked == true) ? parseInt(pochta.value) : 0;
            kurier += (exampleRadios3.checked == true) ? parseInt(kurier.value) : 0;
        
            
            price = summa + drstrana;

            result.innerHTML = price;
        }



Для теста пытаюсь сделать самый простой просчет, но даже сумму не показывает((
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
Bavashi
@Bavashi
Ох,
function calc() {


  var result = document.getElementById("result");

  var summa = document.getElementById("summa");

  var rossia = document.getElementById("rossia");
  var drstrana = document.getElementById("drstrana");

  var pochta = document.getElementById("pochta");
  var kurier = document.getElementById("kurier");

  var price = 0;


  //Результаты выбора

  var result = document.getElementById("summa");

  var result = document.getElementById("rossia");
  var result = document.getElementById("drstrana");

  var result = document.getElementById("pochta");
  var result = document.getElementById("kurier");

  //Общий результат
  var result = document.getElementById("result");

  //Цена для выбора по умолчанию

  //var summa = 0;

  var rossia = 0;
  //var pochta = 0;

  var kurier = 0;
  //var result = 0;  

  //Общая цена
  var price = 0;


  summa = parseInt(summa.value);

  rossia = (rossia.checked == true) ? parseInt(rossia.value) : 0;
  drstrana = (drstrana.checked == true) ? parseInt(drstrana.value) : 0;

  pochta = (pochta.checked == true) ? parseInt(pochta.value) : 0;
  //kurier += (exampleRadios3.checked == true) ? parseInt(kurier.value) : 0;


  price = summa + drstrana;

  result.innerHTML = price;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Smexardix
Вот исправленная форма:

spoiler
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <form>
    <div class="form-group">
      <label>Стоимость</label>
      <input type="text" class="form-control3" id="summa" value="1000">
    </div>
    <div class="form-group">
      <label for="amount-sample-4">Страна:</label>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="exampleRadios" id="rossia" value="0" checked>
        <label class="form-check-label" for="rossia">
          Россия
        </label>
      </div>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="exampleRadios" id="drstrana" value="600">
        <label class="form-check-label" for="drstrana">
          Другая страна
        </label>
      </div>
    </div>
    <div class="form-group">
      <label for="name-sample-4">Адрес:</label>
      <div>
        <input id="name-sample-4" required="" placeholder="" class="form-control" type="text" value="Walter" size="30">
      </div>
    </div>
    <div class="form-group">
      <label for="amount-sample-4">Доставка:</label>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="exampleRadios1" id="pochta" value="600" checked>
        <label class="form-check-label" for="pochta">
          Почта России
        </label>
      </div>
      <div class="form-check">
        <input class="form-check-input" type="radio" name="exampleRadios1" id="kurier" value="0">
        <label class="form-check-label" for="kurier">
          Курьерская доставка
        </label>
      </div>
    </div>
    <button id="calc">Посчитать</button>  <!-- Добавил кнопку для пересчета с новыми значениями -->
      <br />
      <br />
    <div>Стоимость дизайна сайта: <span id="result">0</span> руб.</div>
  </form>

  <script src="s.js"></script>
</body>
</html>


А вот исправленный скрипт:

spoiler
var button = document.getElementById("calc"); 
  button.addEventListener('click', calc);

function calc(e) {
  e.preventDefault();  // запретить действие по умолчанию, иначе скрипт не будет работать
  var result = document.getElementById("result"); 
  var summa = document.getElementById("summa");
  var rossia = document.getElementById("rossia");
  var drstrana = document.getElementById("drstrana");
  var pochta = document.getElementById("pochta");
  var kurier = document.getElementById("kurier");
  var price = 0;

  summa = parseInt(summa.value);         

  rossia = rossia.checked ? parseInt(rossia.value) : 0;
  drstrana = drstrana.checked ? parseInt(drstrana.value) : 0;
  
  pochta = pochta.checked ? parseInt(pochta.value) : 0;
  kurier = kurier.checked ? parseInt(kurier.value) : 0;

  price = summa + rossia + drstrana + pochta + kurier;

  result.innerHTML = price;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы