X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> JS Умножение
Sleepwalker_mw
Sleepwalker_mw
Topic Starter сообщение 22.1.2013, 12:17; Ответить: Sleepwalker_mw
Сообщение #1


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

на " 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>

Эскизы прикрепленных изображений
Прикрепленное изображение
 
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sleepwalker_mw
Sleepwalker_mw
Topic Starter сообщение 23.1.2013, 9:32; Ответить: Sleepwalker_mw
Сообщение #2


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

Проблемы:

Если выбрать "формат диска - 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];" и ответ записываться в "Итого".
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 23.1.2013, 13:38; Ответить: yury_mw
Сообщение #3


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

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

А так все нормально умножает.
Если, конечно, не обращать внимание на издевательские имена переменных (которые, видимо, специально придуманы так, чтобы запутать читающего код).
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sleepwalker_mw
Sleepwalker_mw
Topic Starter сообщение 23.1.2013, 13:57; Ответить: Sleepwalker_mw
Сообщение #4


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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 29.3.2024, 10:43
Дизайн