Javascript.RU

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

Помогите разобраться
есть функция и формы ввода

<html>
<head>
<title>Считалка</title>

<script language="JavaScript" type="text/javascript">
function calc()
{
	cost_m2=document.getElementById('cost_m2');  //цена метра квадратного
	#cost_izd=document.getElementById('cost_izd');  // цена изделия
	#cost=document.getElementById('cost');  //сумма
	width=document.getElementById('width'); //ширина
	height=document.getElementById('height'); //высота
	metric=document.getElementById('metric'); //размер в см мм м
	copys=document.getElementById('copys'); //колво-копий
	#sq=document.getElementById('sq'); //площадь

    var w,h;
    if(metric[metric.selectedIndex].value=='mm') //переводим в метры
    {
    	w=width.value/1000;
    	h=height.value/1000
    }
    if(metric[metric.selectedIndex].value=='cm')
    {
    	w=width.value/100;
    	h=height.value/100
    }
    if(metric[metric.selectedIndex].value=='m')
    {
    	w=width.value;
    	h=height.value;
    }
	var sq, cost_izd;
	sq.value=w*h;  // размер в квадратах 
	cost_izd.value = sq.value*cost_m2.value;  //умножаем полеченный размер на цену метра квадратного = цена изделия
	cost.value = 1*cost_izd.value*copys.value; //цену изделия на кол-во копий  = цена
}
</script>

</head>
<body>
<select id="cost_m2" name="material" onclick="calc()" onchange="calc()">
		<option value="">--</option>
		<option value="10">Самоклейка</option>
		<option value="15">Банер</option>
</select>


<input type="text" value="0" id="height" name="height" onclick="calc()" onchange="calc()">x<input type="text" value="0" id="width" name="width" onclick="calc()" onchange="calc()">
<select name="metric" id="metric" onclick="calc()" onchange="calc()" >
<option value="cm">cm</option>
<option value="m">m</option>
<option value="mm">mm</option>
</select> (ширина х высота)

<input name="copys"  onclick="calc()" onchange="calc()"  id="copys" value="1" size="3">
<br>

<input name="cost" size="6" id="cost" value="0">

</body>
</html>


Я в javascript новичок, ткните носом в ошибки, буду благодарен!
Ответить с цитированием
  #2 (permalink)  
Старый 29.10.2008, 19:09
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

А в чем проблема то?
Ответить с цитированием
  #3 (permalink)  
Старый 29.10.2008, 19:12
Аватар для flock
Интересующийся
Отправить личное сообщение для flock Посмотреть профиль Найти все сообщения от flock
 
Регистрация: 29.10.2008
Сообщений: 10

Скрипт должен выводить сумму, но он не работает.
Ответить с цитированием
  #4 (permalink)  
Старый 29.10.2008, 19:20
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

<html>
	<head>
		<title>Считалка</title>
		<script language="JavaScript" type="text/javascript">
			<!--
			function calc() {
			    var cost_m2 = document.getElementById('cost_m2');  //цена метра квадратного
			    //var cost_izd = document.getElementById('cost_izd');  // цена изделия
			    var cost = document.getElementById('cost');  //сумма
			    var width = document.getElementById('width'); //ширина
			    var height = document.getElementById('height'); //высота
			    var metric = document.getElementById('metric'); //размер в см мм м
			    var copys = document.getElementById('copys'); //колво-копий
			    //var sq = document.getElementById('sq'); //площадь
			 
			    var w, h;
			    if(metric.value == 'mm') {
			        w = width.value / 1000;
			        h = height.value / 1000;
			    }
			    if(metric.value == 'cm') {
			        w = width.value / 100;
			        h = height.value / 100;
			    }
			    if(metric.value=='m') {
			        w = width.value;
			        h = height.value;
			    }
			
				var sq, cost_izd;
			    sq = w * h;  // размер в квадратах 
			    cost_izd = sq * cost_m2.value;  //умножаем полеченный размер на цену метра квадратного = цена изделия
			    cost.value = 1 * cost_izd * copys.value; //цену изделия на кол-во копий  = цена
			}
			//-->
		</script>
	</head>
	<body>
		<form>
			<select id="cost_m2" name="material" onChange="calc()">
				<option value="">--</option>
				<option value="10">Самоклейка</option>
				<option value="15">Банер</option>
			</select>
			
			<input type="text" value="0" id="height" name="height" onKeyUp="calc()"> x <input type="text" value="0" id="width" name="width" onKeyUp="calc()">
			<select name="metric" id="metric" onChange="calc()" >
				<option value="cm">cm</option>
				<option value="m">m</option>
				<option value="mm">mm</option>
			</select> (ширина х высота)
			
			<input name="copys" onKeyUp="calc()"  id="copys" value="1" size="3">
			<br>
			
			<input name="cost" size="6" id="cost" value="0">
		</form>
	</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 29.10.2008, 19:23
Аватар для flock
Интересующийся
Отправить личное сообщение для flock Посмотреть профиль Найти все сообщения от flock
 
Регистрация: 29.10.2008
Сообщений: 10

Kos,
Спасибо огромное!!!
Ответить с цитированием
  #6 (permalink)  
Старый 30.10.2008, 16:37
Аватар для flock
Интересующийся
Отправить личное сообщение для flock Посмотреть профиль Найти все сообщения от flock
 
Регистрация: 29.10.2008
Сообщений: 10

if ((document.getElementById('paika').checked) && (document.getElementById('lyuv_con').onchange && lyuv_con.value>0))


Не работает , подскажите где ошибка.
Ответить с цитированием
  #7 (permalink)  
Старый 30.10.2008, 16:42
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

Во-первых onchange - метод, а не значение, а во-вторых - что такое lyuv_con?
Ответить с цитированием
  #8 (permalink)  
Старый 30.10.2008, 16:48
Аватар для flock
Интересующийся
Отправить личное сообщение для flock Посмотреть профиль Найти все сообщения от flock
 
Регистрация: 29.10.2008
Сообщений: 10

function calc() {
                var cost_m2 = document.getElementById('cost_m2');  //цена метра квадратного
                var cost_izd = document.getElementById('cost_izd');  // цена изделия
                var cost = document.getElementById('cost');  //сумма
                var width = document.getElementById('width'); //ширина
                var height = document.getElementById('height'); //высота
                var metric = document.getElementById('metric'); //размер в см мм м
                var copys = document.getElementById('copys'); //колво-копий
                var lyuv_com = document.getElementById('lyuv_con'); //люверсы, расстояние
                var lyuv_cost = document.getElementById('lyuv_cost'); //цена одного люверса
                //var paika = document.getElementById('paika'); //пайка
                var paika_cost = document.getElementById('paika_cost'); //цена пайки за метр
 
                var w, h; 
                if(metric.value == 'mm') {
                    w = width.value / 1000;
                    h = height.value / 1000;
                }
                if(metric.value == 'cm') {
                    w = width.value / 100;
                    h = height.value / 100;
                }
                if(metric.value=='m') {
                    w = width.value;
                    h = height.value;
                }
                
                
                var per, cost_pai, kol, cost_l, sq, cost_izd;
                per = (w + h) * 2; //периметр 
                sq = w * h;  // размер в квадратах, площадь
 
                if(document.getElementById('paika').checked)//пайка
			    {
					cost_pai = per * paika_cost.value;// цена пайки по периметру
					cost_izd = sq * cost_m2.value;  //умножаем полеченный размер на цену метра квадратного = цена изделия
                	cost.value = 1 * cost_izd * copys.value + cost_pai;//цену изделия на кол-во копий  = цена	
                			
			    } else if (document.getElementById('lyuv_con').onchange && lyuv_con.value>0)//расстояние между люверсами
			    {
			    	kol = per / lyuv_con.value; //кол-во люверсов
				    cost_l = kol * lyuv_cost.value; //сумма за люверсы, кол-во люверсов умножаем на цену одного
				    cost_izd = sq * cost_m2.value;  //умножаем полеченный размер на цену метра квадратного = цена изделия
                	cost.value = 1 * cost_izd * copys.value + cost_l;//цену изделия на кол-во копий  = цена
					
			    } else if ((document.getElementById('paika').checked) && (document.getElementById('lyuv_con').onchange && lyuv_con.value>0))
			    {
			    	cost_pai = per * paika_cost.value;// цена пайки по периметру
			    	kol = per / lyuv_con.value; //кол-во люверсов
				    cost_l = kol * lyuv_cost.value; //сумма за люверсы, кол-во люверсов умножаем на цену одного
					cost_izd = sq * cost_m2.value;  //умножаем полеченный размер на цену метра квадратного = цена изделия
					cost.value = 1 * cost_izd * copys.value + cost_l + cost_pai;//цену изделия на кол-во копий  = цена
					
			    }
			    
			    else {
			    	
			    	cost_izd = sq * cost_m2.value;  //умножаем полеченный размер на цену метра квадратного = цена изделия
                	cost.value = 1 * cost_izd * copys.value;//цену изделия на кол-во копий  = цена
			    
			    }
			  
                
            }
            //-->
        </script>



lyuv_con - расcтояние
Ответить с цитированием
  #9 (permalink)  
Старый 30.10.2008, 16:51
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

а если так?
parseInt(lyuv_con.value)>0
Ответить с цитированием
  #10 (permalink)  
Старый 30.10.2008, 17:00
Аватар для flock
Интересующийся
Отправить личное сообщение для flock Посмотреть профиль Найти все сообщения от flock
 
Регистрация: 29.10.2008
Сообщений: 10

Получается если я выбираю одно из условий , всё работает , но когда их два , то работает только одно - paika.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с Dojo greendoc Dojo toolkit 4 13.10.2011 18:19
Помогите разобраться в повторным обращении к функции, как её обнулить. AdvoGad Общие вопросы Javascript 0 01.09.2008 11:35
Помогите разобраться с логикой поведения скрипта MarkupDeveloper jQuery 3 21.06.2008 18:04
Помогите разобраться с проблемой SergeiAzarov (X)HTML/CSS 0 28.03.2008 18:51
Помогите разобраться с функцией dateAdd Likan Общие вопросы Javascript 3 21.03.2008 16:13