Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Калькулятор в форме (https://javascript.ru/forum/dom-window/43881-kalkulyator-v-forme.html)

iskander83 25.12.2013 01:43

Калькулятор в форме
 
Есть такой калькулятор, точнее форма

<form class="kalk" onsubmit="return false" oninput="summ.value = parseInt(ploshad.value) * parseInt(faktura.value) + parseInt(corner.value)" >	

<p>Фактура:</p>
     <select type="text" name="faktura" id="faktura" size="1" onchange="summ.value = parseInt(ploshad.value) * parseInt(faktura.value) + parseInt(corner.value)">
<option selected value="600">Белый матовый</option>
<option value="650">Белый сатиновый</option>
<option value="650">Белый глянцевый</option>
<option value="700">Цветной матовый</option>
<option value="700">Цветной сатиновый</option>
<option value="700">Цветной глянцевый</option>
</select>    

<p>Площадь комнаты, кв. м.</p>
<input type="range" min="1" max="30" step="1" id="ploshad" name="ploshad" 
      value="4" oninput="o.value = parseInt(ploshad.value) " >
      <p class="output"><output name="o">4</output> </p>
     
     
   <p>Количество углов:</p>
 <select type="text" name="corner" id="corner" size="1" onchange="summ.value = parseInt(ploshad.value) * parseInt(faktura.value) + parseInt(corner.value)"> 
<option selected value="400">4</option>
<option value="500">5</option>
<option value="600">6</option>
<option value="700">7</option>
<option value="800">8</option>
<option value="900">9</option>
<option value="1000">10</option>
</select>     

  <p class="summa">Стоимость: 
<output name="summ" id="summa"></output>
 руб.</p>   

</form>


в действии можно посмотреть здесь: http://potolok2014.ru/

проблема: КАК СДЕЛАТЬ ТАК ЧТОБ ПРИ СУММЕ МЕНЕЕ 5000, В <output name="summ" id="summa"></output> ВСЕ-РАВНО ВЫВОДИЛОСЬ 5000, А ДАЛЬШЕ УЖЕ СЧИТАЛ КАК СЧИТАЕТ СЕЙЧАС?

Прошу помощи знатоки...

danik.js 25.12.2013 10:25

iskander83, не смущает что <output> не поддерживается старыми браузерами?

iskander83 25.12.2013 13:19

это
var summ = ploshad.value * faktura.value + corner.value;
summ.value = (summ < 5000) ? 5000 : summ;


как я поныл надо в js вставлять?
в теории то понятно надо выхватить значениеи поставить условие, а вот как на практике написать?
пробую так , но что то не получается
$('#ploshad').mouseup(function() {	
	var parent = $(this).parent('form');		 
		_ploshad = $(parent).find('#ploshad');		
		_summa = $(parent).find('#summa');		
		ploshad = $(_ploshad).val();		
		if (ploshad <= 7) alert('!!!!!!!!!!!!!!!!!!!!!!!') 		
		else.........

iskander83 25.12.2013 13:19

output не смущает

iskander83 25.12.2013 13:31

так я понял кое что
$('#ploshad').mouseup(function() {	
	var parent = $(this).parent('form'); 			
		_summ = $(parent).find('#summa');	 		
		summ = $(_summ).text();		
		if (summ <= '5000') alert('!!!!!!!!!!!!!!!!!!!!!!!') 		
		else 		
		summa = ..........;	
	});


summ у нас текстовое значение, у него нет value, теперь надо преобразовать в число...

iskander83 25.12.2013 15:53

полностью убрал вычисления из формы и написал скрипт но не пойму почему выдает NaN
<script>
 function isCount() {	
	var parent = $(this).parent('form'); 			
		_ploshad = $(parent).find('#ploshad');
		_faktura = $(parent).find('#faktura');
		_corner = $(parent).find('#corner');		
	
		ploshad = $(_ploshad).val();
		faktura = $(_faktura).val();
		corner = $(_corner).val();			 
		
		summa = (+ploshad * +faktura) + (+corner);		
		
		itog = ( Math.round(summa) );	
		
		if (summa <= 5000) alert(summa) 		
		else 		
		alert(itog*2) ;          
	
	};
    </script>

iskander83 25.12.2013 15:58

ПРОШУ ПОМОЩИ!!!:help:

iskander83 25.12.2013 16:37

Так все работает
function isCount() {	
	var parent = $(this).parent('form');		 
	
		ploshad = $('#ploshad').val();
		faktura = $('#faktura').val();
		corner = $('#corner').val();			 
		
		summ = (+ploshad * +faktura) + (+corner);				
		itog = ( Math.round(summ) );		
		
		if (summ <= 5000) 
		document.getElementById('summa').innerHTML = 5000;		
		else 		
		document.getElementById('summa').innerHTML = summ;	;          
	
	};

iskander83 25.12.2013 16:38

Спасибо всем кто помог!


Часовой пояс GMT +3, время: 12:28.