Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.09.2016, 14:16
Новичок на форуме
Отправить личное сообщение для bigi Посмотреть профиль Найти все сообщения от bigi
 
Регистрация: 21.09.2016
Сообщений: 3

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

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">

function calc() {
//Должность
var dol = document.getElementById("dol");
//Сумма
var sum = document.getElementById("sum");
var rezult;
if(dol==1) {
if(sum < 200000) rezult = sum*0;
if((sum >= 200000) && (sum < 250000)) rezult = sum*1.010;
if((sum >= 250000) && (sum < 300000)) rezult = sum*1.016;
if((sum >= 300000) && (sum < 350000)) rezult = sum*1.022;
if((sum >= 350000) && (sum < 400000)) rezult = sum*1.023;
if(sum >= 400000) rezult = sum*1.024;
}
if(dol==2) {
if(sum < 250000) rezult = sum*0;
if((sum >= 250000) && (sum < 300000)) rezult = sum*1.016;
if((sum >= 300000) && (sum < 350000)) rezult = sum*1.022;
if((sum >= 350000) && (sum < 400000)) rezult = sum*1.023;
if((sum >= 400000) && (sum < 450000)) rezult = sum*1.024;
if(sum >= 450000) rezult = sum*1.025;
}
if(dol==3) {
if(sum < 300000) rezult = sum*0;
if((sum >= 300000) && (sum < 350000)) rezult = sum*1.022;
if((sum >= 350000) && (sum < 400000)) rezult = sum*1.023;
if((sum >= 400000) && (sum < 450000)) rezult = sum*1.024;
if((sum >= 450000) && (sum < 500000)) rezult = sum*1.025;
if(sum >= 500000) rezult = sum*1.026;
}
if(dol==4) {
if(sum < 350000)rezult = sum*0;
if((sum >= 350000) && (sum < 400000)) rezult = sum*1.023;
if((sum >= 400000) && (sum < 450000)) rezult = sum*1.024;
if((sum >= 450000) && (sum < 500000)) rezult = sum*1.025;
if((sum >= 450000) && (sum < 500000)) rezult = sum*1.026;
if(sum >= 550000) rezult = sum* 1.027;
}
if(dol==5) {
if(sum <= 1000000) rezult = sum*0;
if((sum > 1000000) && (sum <= 1100000)) rezult = sum*1.004;
if((sum > 1100000) && (sum <= 1300000)) rezult = sum*1.005;
if((sum > 1300000) && (sum <= 1500000)) rezult = sum*1.006;
if((sum > 1500000) && (sum <= 1700000)) rezult = sum*1.007;
if((sum > 1700000) && (sum <= 1900000)) rezult = sum*1.008;
if((sum > 1900000) && (sum <= 2100000)) rezult = sum*1.009;
if((sum > 2100000) && (sum <= 2500000)) rezult = sum*1.010;
}
var result = document.getElementById("rezult");
var rezult = 0;
rezult += parseInt(dol.value);
rezult = parseInt(rezult) ;

rezult.innerHTML = rezult;

}

</script>
</head>
<body>
<b>Должность:</b><br/>
<select onchange="calc()" id="dol">
<option value="0">Выбрать</option>
<option value="1">Специалист</option>
<option value="2">Старший</option>
<option value="3">Ведущий</option>
<option value="4">Главный</option>
<option value="5">Руководитель</option>
</select><br/>
<br/>
Сумма: <input type="text" id="sum" value="0" onchange="calc()" />
<div>Премия: <span id="rezult">0</span> руб.</div>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2016, 14:29
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,663

bigi, почему у руководителя коэффициент премии меньше всех?
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2016, 14:33
Новичок на форуме
Отправить личное сообщение для bigi Посмотреть профиль Найти все сообщения от bigi
 
Регистрация: 21.09.2016
Сообщений: 3

у него суммы больше
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2016, 15:01
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,663

bigi, да я шучу...
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2016, 15:07
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,663

bigi, у тебя премия с учетом суммы получается, в конце почему то результат обнуляешь и путаешь result с rezult, а значения так надо получать dol.value и sum.value

Последний раз редактировалось Rise, 21.09.2016 в 15:12.
Ответить с цитированием
  #6 (permalink)  
Старый 21.09.2016, 16:19
Новичок на форуме
Отправить личное сообщение для bigi Посмотреть профиль Найти все сообщения от bigi
 
Регистрация: 21.09.2016
Сообщений: 3

поменял на
var prem = 0;
prem += dol.options[type_design.selectedIndex].value;
prem += parseInt(sum.value);

prem = parseInt(rezult.value);

result.innerHTML = prem;
(...)

<div>Премия: <span id="result">0</span> руб.</div>


все равно ничего не считается.
Ответить с цитированием
  #7 (permalink)  
Старый 21.09.2016, 16:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

bigi,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #8 (permalink)  
Старый 23.09.2016, 03:24
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,663

bigi,
function calc() {
	
	var d = +document.getElementById('dol').value;
	var s = +document.getElementById('sum').value;
	var k = 0;
	
	if (isNaN(s)) {
		s = 0;
	} else if (d == 1) {
		
			 if (s >= 400000) k = 0.024;
		else if (s >= 350000) k = 0.023;
		else if (s >= 300000) k = 0.022;
		else if (s >= 250000) k = 0.016;
		else if (s >= 200000) k = 0.010;
		
	} else if (d == 2) {

	} else if (d == 3) {

	} else if (d == 4) {

	} else if (d == 5) {

	}
	
	document.getElementById('rezult').textContent = parseInt(s * k);
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в расширении espltd Элементы интерфейса 2 30.07.2016 09:16
Нужна помощь - Bootstrap 3 в горизонтальном модуле Joomla не работает кнопка Ingener Общие вопросы Javascript 1 07.05.2016 17:15
Нужна помощь с autocomplete Nuuta jQuery 0 13.10.2015 20:51
Нужна помощь, сломался калькулятор smnik Работа 7 16.05.2015 13:39
В IE не работает динамическое изменение colspan, нужна помощь! Extasy Общие вопросы Javascript 8 17.08.2008 11:55