Javascript.RU

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

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

По картинке все видно, пытаюсь сделать калькулятор стоимости.

Покажите где тут ошибка?)

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

Подскажите как сделать (исправить)) так чтобы при нажатие кнопки

"рассчитать"

(<td><input type="button" value="Рассчитать" onclick="calculator_msk(this.form)">)

перемножались 2 соответствующие выбранные

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

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

и ответ записывался в окошко

(input name="totalmsk" )


Код:
<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];
  
        
   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 Помошь.png (6.7 Кб, 6 просмотров)

Последний раз редактировалось SleepWalker15, 23.01.2013 в 08:53.
Ответить с цитированием
  #2 (permalink)  
Старый 23.01.2013, 08:34
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

ну так он и перемножает же, в чем проблема то?
Ответить с цитированием
  #3 (permalink)  
Старый 23.01.2013, 09:23
Аватар для SleepWalker15
Интересующийся
Отправить личное сообщение для SleepWalker15 Посмотреть профиль Найти все сообщения от SleepWalker15
 
Регистрация: 23.01.2013
Сообщений: 14

http://yadi.sk/d/P4T1GmQu2367X файл в хтмл

Проблемы:

Если выбрать "формат диска - 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];" и ответ записываться в "Итого".
Ответить с цитированием
  #4 (permalink)  
Старый 23.01.2013, 09:35
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

Сообщение от SleepWalker15
По задумке из "var time = [2,9];" должна цифра "9" умножатся на цифру "1" из "var base = [1,2,3,4,5,6];" и
- это че это?)))) если будет цифра 1, то из массива выберется цифра 2, потому что в массиве цифры сосредоточены следующим образом, но вот по вашему примеру, (0 -> 1, 1 -> 2, 2 -> 3 ... ну и т.д.) читайте статью http://javascript.ru/Array

Сообщение от SleepWalker15
" Тираж CD/DVD дисков" больше 300 то в ответе (итого) будет "NaN"
- это значит он не нашел в вашем массиве ключ, по которому он должен был вытащить значение, опять таки читайте статью http://javascript.ru/Array

вообщем изучайте массивы
Ответить с цитированием
  #5 (permalink)  
Старый 23.01.2013, 09:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

ммм да...
Сообщение от SleepWalker15
По задумке из "var time = [2,9];"
а сам пишешь

Сообщение от SleepWalker15
var time = [2,3];
Как это панимайт?

И пример можно было по-путевее сделать.
Как вариант

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
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]
];
function calc() {
	var tr=document.getElementById('numberof').value;
	var ho=document.getElementById('hours').value;
	alert(tr+' - '+ho);
	tr=base[tr];
	ho=time[ho];
	alert(tr+' - '+ho);
	var rez=tr*ho;
	document.getElementById('totalmsk').value=rez;
};
</script>
</head>
<body>
<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">от 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">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">Нет</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="calc();"> 
				<input type="reset" value="Сброс">
			</td>  
			</tr>
			<tr>
				<td>Итого: </td>
				<td><input name="totalmsk" id="totalmsk" type="text" size="8"></td>
			</tr>
			</tbody>
		</table>
	</div>
</form>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 23.01.2013, 09:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

SleepWalker15,
base_s = time[format]*base[korobka];
base_s = time[times]*base[korobka];
Ответить с цитированием
  #7 (permalink)  
Старый 23.01.2013, 09:53
Аватар для SleepWalker15
Интересующийся
Отправить личное сообщение для SleepWalker15 Посмотреть профиль Найти все сообщения от SleepWalker15
 
Регистрация: 23.01.2013
Сообщений: 14

Я имел в виду что если выбрать "Формат диска id="hours" на "option value="1">DVD-R/RW" то цифра 9 из массива time не умножится на любую цифру из массива base.
Ответить с цитированием
  #8 (permalink)  
Старый 23.01.2013, 09:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от рони Посмотреть сообщение
base_s = time[format]*base[korobka];
base_s = time[times]*base[korobka];
Видать автор вовсе не смотрит что пишет...
Ответить с цитированием
  #9 (permalink)  
Старый 23.01.2013, 09:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от SleepWalker15 Посмотреть сообщение
Я имел в виду что если выбрать "Формат диска id="hours" на "option value="1">DVD-R/RW" то цифра 9 из массива time не умножится на любую цифру из массива base.
Ну нет в твоём примере такой цифры!
Проверяй что пишешь...
Ответить с цитированием
  #10 (permalink)  
Старый 23.01.2013, 10:01
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28