| 
	| 
	
	| 
		
	| 
			
			 
			
				19.08.2015, 16:26
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 06.05.2010 
						Сообщений: 9
					 
		
 |  |  
	| 
				обработка формы, не работает только в IE
			 
function getResult(){
var table= {
		1:{price:350,density:1630},
		2:{price:650,density:1580},
		3:{price:700,density:1620},
		};
var price=0,value=0;
if (measure.value==1) {
		price=((table[product.value].price*count.value).toFixed(2));
		value=((table[product.value].density*count.value).toFixed(0));
		result.innerHTML=price+' руб. ('+value+' кг.)'
	}
else if (measure.value==2) {
	price=((count.value/table[product.value].density*table[product.value].price).toFixed(2));
	value=((count.value/table[product.value].density).toFixed(1));
	result.innerHTML=price+' руб. ('+value+' м3.) '
	}
}
<form onsubmit="return false;" oninput="getResult()">
    <select size=1 id=product  onChange="getResult()">
		<option value=1 selected>Песок</option>
		<option value=2>Гравий</option>
		<option value=3>Щебень</option>
	</select>кол-во:
    <input id="count" type="number" value=1 min=0 oninput="getResult()">
    <select size=1 id="measure" onChange="getResult()">
        <option value=1  selected>м3</option>
        <option value=2>кг</option>
    </select>
	
	Цена: <span id="result">350 руб. (1300 кг.)</span>
</form>
 html форма никак не обрабатывается  експлорером   
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				19.08.2015, 16:41
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| exzibit, 
 а не любит ie таких вещей  
	
 
	| Сообщение от exzibit |  
	| product.value |  
	
 
	
 
	| Сообщение от exzibit |  
	| measure.value |  
	
 
	
 
	| Сообщение от exzibit |  
	| count.value |  
	
 
	
 
	| Сообщение от exzibit |  
	| 3:{price:700,density:1620}, |  
	
 создайте переменные для элементов и запятую уберите |  |  
	| 
		
	| 
			
			 
			
				20.08.2015, 09:32
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 06.05.2010 
						Сообщений: 9
					 
		
 |  |  
	| спасибо, методом дополнительного тыка заработало в opera,chrome, ff, ie8 
P.S. код обозначения переменных можно как-то сократить? 
 
function getResult(){
var table= {
		1:{price:350,density:1630},
		2:{price:150,density:1580},
		3:{price:700,density:1620},
		4:{price:1100,density:1360},
		5:{price:1100,density:1360},
		6:{price:1100,density:1400},
		7:{price:300,density:1580}
		};
var price=0,value=0;
var productId=document.getElementById("product");
var productValue=productId.value;
var countId=document.getElementById("count");
var countValue=countId.value;
var measureId=document.getElementById("measure");
var measureValue=measureId.value;
var result=document.getElementById("result");
if (measureValue==1) {
		price=((table[productValue].price*countValue).toFixed(2));
		value=((table[productValue].density*countValue).toFixed(0));
		result.innerHTML=price+' руб. ('+value+' кг.)'
	}
else if (measureValue==2) {
	price=((countValue/table[productValue].density*table[productValue].price).toFixed(2));
	value=((countValue/table[productValue].density).toFixed(1));
	result	.innerHTML=price+' руб. ('+value+' м3.) '
	}
}
<form onsubmit="return false;" oninput="getResult()">
    <select size=1 id=product  onChange="getResult()">
		<option value=1 selected>Песок мытый</option>
		<option value=2>Отсев песка</option>
		<option value=3>Гравий 20x40</option>
		<option value=4>Щебень 5х20</option>
		<option value=5>Щебень 20х40</option>
		<option value=6>Щебень 40х70</option>
		<option value=7>Отсев щебня</option>
	</select>кол-во:
	<!--[if IE]>  <input id="count" type="number" value=1 min=0 onpropertychange="getResult()"> <![endif]-->
	<!--[if !IE]><!--> <input id="count" type="number" value=1 min=0 onChange="getResult()"> <!--<![endif]-->
    <select size=1 id="measure" onChange="getResult()">
        <option value=1  selected>м3</option>
        <option value=2>кг</option>
    </select>
	Цена: <span id="result">350 руб. (1300 кг.)</span>
</form>
			 Последний раз редактировалось exzibit, 20.08.2015 в 09:37.
 |  |  
	| 
		
	| 
			
			 
			
				20.08.2015, 11:21
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| exzibit, 
 можно так чуток сократить    
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
 <form onsubmit="return false;" oninput="getResult()">
    <select size=1 id=product  onChange="getResult()">
		<option value=1 selected>Песок мытый</option>
		<option value=2>Отсев песка</option>
		<option value=3>Гравий 20x40</option>
		<option value=4>Щебень 5х20</option>
		<option value=5>Щебень 20х40</option>
		<option value=6>Щебень 40х70</option>
		<option value=7>Отсев щебня</option>
	</select>кол-во:
	<!--[if IE]>  <input id="count" type="number" value=1 min=0 onpropertychange="getResult()"> <![endif]-->
	<!--[if !IE]><!--> <input id="count" type="number" value=1 min=0 onChange="getResult()"> <!--<![endif]-->
    <select size=1 id="measure" onChange="getResult()">
        <option value=1  selected>м3</option>
        <option value=2>кг</option>
    </select>
	Цена: <span id="result">350 руб. (1300 кг.)</span>
</form>
<script>
function getResult(){
var table= {
		1:{price:350,density:1630},
		2:{price:150,density:1580},
		3:{price:700,density:1620},
		4:{price:1100,density:1360},
		5:{price:1100,density:1360},
		6:{price:1100,density:1400},
		7:{price:300,density:1580}
		};
var price=0,value=0,
elems = document.querySelectorAll('#product, #count, #measure, #result');
elems = [table[elems[0].value], elems[1].value, elems[2].value, elems[3]];
if (elems[2]==1) {
		price=((elems[0].price*elems[1]).toFixed(2));
		value=((elems[0].density*elems[1]).toFixed(0));
		price+=' руб. ('+value+' кг.)'
	}
else if (elems[2]==2) {
	price=((elems[1]/elems[0].density*elems[0].price).toFixed(2));
	value=((elems[1]/elems[0].density).toFixed(1));
	price+=' руб. ('+value+' м3.) '
	}
  elems[3].innerHTML=price
}
</script>
</body>
</html>
 
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				20.08.2015, 11:22
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| exzibit, 
 или так    
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
 <form onsubmit="return false;" oninput="getResult()">
    <select size=1 id=product  onChange="getResult()">
		<option value=1 selected>Песок мытый</option>
		<option value=2>Отсев песка</option>
		<option value=3>Гравий 20x40</option>
		<option value=4>Щебень 5х20</option>
		<option value=5>Щебень 20х40</option>
		<option value=6>Щебень 40х70</option>
		<option value=7>Отсев щебня</option>
	</select>кол-во:
	<!--[if IE]>  <input id="count" type="number" value=1 min=0 onpropertychange="getResult()"> <![endif]-->
	<!--[if !IE]><!--> <input id="count" type="number" value=1 min=0 onChange="getResult()"> <!--<![endif]-->
    <select size=1 id="measure" onChange="getResult()">
        <option value=1  selected>м3</option>
        <option value=2>кг</option>
    </select>
	Цена: <span id="result">350 руб. (1300 кг.)</span>
</form>
<script>
function getResult() {
    var b,
        c,
        a = document.querySelectorAll("#product, #count, #measure, #result"),
        a = [{
		1:{price:350,density:1630},
		2:{price:150,density:1580},
		3:{price:700,density:1620},
		4:{price:1100,density:1360},
		5:{price:1100,density:1360},
		6:{price:1100,density:1400},
		7:{price:300,density:1580}
		}[a[0].value], a[1].value, a[2].value, a[3]];
    1 == a[2] ? (b = (a[0].price * a[1]).toFixed(2),
    c = (a[0].density * a[1]).toFixed(0),
    b += " руб. (" + c + " кг.)") :
    2 == a[2] && (b = (a[1] / a[0].density * a[0].price).toFixed(2),
    c = (a[1] / a[0].density).toFixed(1), b += " руб. (" + c + " м3.) ");
    a[3].innerHTML = b
};
</script>
</body>
</html>
 			 Последний раз редактировалось рони, 20.08.2015 в 11:25.
 |  |  
	| 
		
	| 
			
			 
			
				20.08.2015, 12:28
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 06.05.2010 
						Сообщений: 9
					 
		
 |  |  
	| спасибо, полезно) и мозг взорван на 5+    |  |  |  |