Перейти к содержимому


Партнерская программа Kredov

JS Умножение

#1 Sleepwalker

Sleepwalker
  • Пользователь
  • 202 сообщений
  • Репутация: 3
0

Отправлено 22 Январь 2013 - 11:17

Добрый вечер, пол дня ломаю голову над простейшей задачей :) .
По картинке все видно, пытаюсь сделать калькулятор стоимости.
Покажите где тут ошибка?)

на " var box" не обращать внимание.

Подскажите как сделать (исправить)) так чтобы при нажатие кнопки "рассчитать" перемножались 2 соответствующие выбранные (select

name="numberof" id="numberof" и select name="hours" id="hours" )

цифры из массивов "base" и "time".




<script lang="JavaScript">
function calc(format,times,korobka) {
var base =  [1,2,3,4,5,6];
	var time = [2,3];
	var box = [[0,0,0,0,0,0],
				  [0,0,0,0,0,0,],
				  [1,1,1,1,1,2]];
	

   base_s = time[format]*base[korobka];
   time_s = time[format];
	
   total = base_s
return total;
}  
function calculator_msk(form) {
format = eval(form.numberof.value);
times = eval(form.hours.value);
korobka = eval(form.center.value);

   form.totalmsk.value = calc(format,times,korobka);
}
</script>
<form>
<div>
<table width="532" border="0" align="center">
  <tbody><tr>
	<td width="256">Тираж CD/DVD дисков</td>
  <td width="260">
   <select name="numberof" id="numberof">
	<option value="0" selected="selected">от 100</option>
	<option value="1">от 200</option>
	<option value="2">от 300</option>
	<option value="3">от 500</option>
	<option value="4">от 700</option>
	<option value="5">от 1000</option>
  
   </select>
  </td>
</tr>
<tr>
  <td>формат Диска</td>
  <td>
  <select name="hours" id="hours">
<option value="0" selected="selected">CD-R/RW</option>
<option value="1">DVD-R/RW</option>

			  </select></td>
  </tr>
  <tr>
	<td>Коробочка</td>
	<td><select name="center" id="center">
	 <option value="0" selected="selected">Нет</option>
	 <option value="1">CD-box</option>
	 <option value="2">DVD-box</option>
  
			  </select></td>
  </tr>
  <tr>
	<td></td>
	<td><input type="button" value="Рассчитать" onclick="calculator_msk(this.form)"> <input type="reset" value="Сброс"></td>  </tr>
  <tr>
	<td>Итого: </td>
	<td><input name="totalmsk" type="text" size="8"></td>
  </tr>
</tbody></table>
</div>
</form>


Прикрепленные изображения

  • Помошь.png

 

 

  • 0

#2 Sleepwalker

Sleepwalker
    Topic Starter
  • Пользователь
  • 202 сообщений
  • Репутация: 3

Отправлено 23 Январь 2013 - 08:32

Чуть не забыл, суть проблемы.

Проблемы:

Если выбрать "формат диска - DVD-R/RW" а не "CD-R/W"

По задумке из "var time = [2,9];" должна цифра "9" умножатся на цифру "1" из "var base = [1,2,3,4,5,6];" и

ответ записываться в "Итого". Что собственно у меня не получилось

Вторая проблема если выбрать значение в

" Тираж CD/DVD дисков" больше 300 то в ответе (итого) будет "NaN"

А по задумке из "var base = [1,2,3,4,5,6];" должна цифра "3" умножатся соответственно на "2" или "0" из

"var time = [2,9];" и ответ записываться в "Итого".
  • 0

#3 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 23 Январь 2013 - 12:38

Sleepwalker, у вас либо индексы массивов перепутаны, должно быть, наверно, так:
  base_s = time[korobka]*base[format];
  time_s = time[korobka];

либо перепутаны размеры массивов: base должно быть 2 элемента, а в time - 6.

А так все нормально умножает.
Если, конечно, не обращать внимание на издевательские имена переменных (которые, видимо, специально придуманы так, чтобы запутать читающего код).
  • 0

#4 Sleepwalker

Sleepwalker
    Topic Starter
  • Пользователь
  • 202 сообщений
  • Репутация: 3

Отправлено 23 Январь 2013 - 12:57

Нашел уже ошибки. все норм.
Кому интересно могу в лс бросить.
тему можно закрывать).
  • 0


Оформление форума – IPBSkins.ru