 
			
				13.05.2015, 12:25
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2015 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от kichSman
			 
		
	 | 
 
	
		в вашем случае только костылями 
 
Если диплом не зависит от количества символов, то вот как будет выглядеть ваш код (привожу концепцию для экономии вашего времени), вместо вакханалии и с реализацией того, о чем говорил @Rise
	 | 
 
	
 
 Как бы количество символов не зависит,зависит работоспособность кода) 
 
	
 
	
		
			Сообщение от kichSman
			 
		
	 | 
 
	| 
		Возможно есть ошибки, не проверял... Гранит науки должен грызться с трудом и потом ))
	 | 
 
	
 
 Заменил я код Вашим примером, дописал все значения, подключил к калькулятору и ничего не вышло, думаю дело в связи между кодами, оно их не видит или не хочет видеть.
 
var form = document.querySelector('#form'),
    calc = {
        price: {
            svet: "0.32300",
	    svetno: "63",
            gazyes: "1.7880",
            gazno: "43.13", 
            hotyes: "27.76",
            hotno: "15.81", 
            coldyes: "31.00",
            coldno: "38.25",
            otop: "84.67",
            musor: "26.00"
        },
		
        load: 
		function () {
            var str = localStorage['calc_price'];
            this.price = JSON.parse(str);
            return this;
        },
        set: 
	    function(){
            for(var key in this.price){
                form.querySelector('input[name="'+key+'"]')
                    .value = this.price[key];
            }
            return this;
        },
        save: 
		function () {
            localStorage['calc_price'] = JSON.stringify(this.price);
            return this;
        }
    };
form.addEventListener('change', function(){
    for(var key in calc.price){
        calc.price[key] = this[key];
    }
    calc.save();
    return false;
});
form.querySelector('input[name="svet"]')
    .addEventListener('change', function(e){
        if(!this.value || parseFloat(this.value) < 1){
            e.preventDefault();
            return false;
        }      
    }, false);
calc.load().set();
  
Связь с "электричеством":
 
<input id="sS" style="width: 120px; " type="text" onfocus="changeFlag(0);" onkeyup="CalcSum(1);" onkeypress="return calc_price"></td> </tr>
 
	
 
	
		
			Сообщение от kichSman
			 
		
	 | 
 
	| 
		Возможно есть ошибки, не проверял... Гранит науки должен грызться с трудом и потом ))
	 | 
 
	
 
 Само собой, но я сам учу этот язык и нет того кто мог бы подсказать что делать, вот форум это единственная штука где могут помочь. Вообще мне с трудом программирование дается, не знаю почему.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось dark_mc, 13.05.2015 в 12:29.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.05.2015, 13:15
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.10.2009 
					
					
					
						Сообщений: 69
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 dark_mc, 
 Я не зря указал, что форма должна быть формой, вот и первый урок. Нужно пользоваться BOM-ом полностью, это снизит количество ошибок и размер лишнего кода. 
...кратко, инпуты должны быть внутри формы 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.05.2015, 13:58
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2015 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Rise
			 
		
	 | 
 
	| 
		dark_mc, а вы сами весь код калькулятора писали?
	 | 
 
	
 
 В интернете нашел код и переделал под себя.
 
	
 
	
		
			Сообщение от kichSman
			 
		
	 | 
 
	
		dark_mc, 
Я не зря указал, что форма должна быть формой, вот и первый урок. Нужно пользоваться BOM-ом полностью, это снизит количество ошибок и размер лишнего кода. 
...кратко, инпуты должны быть внутри формы
	 | 
 
	
 
 Спасибо,для меня это будет важным уроком!
 
У меня две формы:  
1 - Там где пользователь сможет сам менять значения(ваш код). 
2 - Форма калькулятора,там где идет сам подсчет.
 
Поместил я калькулятор в форму и ничего не происходит,нет подсчета, ничего не изменяет.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.05.2015, 14:39
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.10.2009 
					
					
					
						Сообщений: 69
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 dark_mc, 
 т.е. вы имели ввиду, форму ввода данных пользователем, и графическое оформление результата расчета, верно? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.05.2015, 14:42
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2015 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 kichSman, 
 Да, именно это) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.05.2015, 14:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.10.2009 
					
					
					
						Сообщений: 69
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Поддержу Rise в вопросе. Вы действительно хотите написать код, или просто скопипастить? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.05.2015, 18:25
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2015 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Хорошо господа, я рад что вы мне помогали, сейчас буду писать все с нуля... 
 
Думаю переписать сам код калькулятора, а тот код с заменой оставить, там в принципе все мне понятно. 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось dark_mc, 13.05.2015 в 19:38.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.05.2015, 21:07
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2015 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Вот сделал форму, написал инпуты для ввода значений пользователем(тарифы), инпуты для расчета, ну и итог. 
Сделал связь, прошелся по коду, должно работать.
 
Подскажите что поменять, что исправить. Почему оно не считает?
 
<form name="test">
    Тарифы:
    <br>
    <input id="S1" value="0.32300" type="text" onkeyup="Sum" onkeypress="return isNumberKey(event)">
    <input id="S2" value="63" type="text" onkeyup="Sum" onkeypress="return isNumberKey(event)">
    <br>
    Расчет:
    <br>
    <input id="sS"  type="text" onkeyup="Sum" onkeypress="return isNumberKey(event)">
    <input id="sE"  type="text" onkeyup="Sum" onkeypress="return isNumberKey(event)">
    <br>
    Итог:
    <br>
    <input id="sum"  readonly="readonly" type="text" onkeyup="Sum">
    
</form>
<script>
    function isNumberKey(evt) {
        var charCode = (evt.which) ? evt.which : event.keyCode
        if (charCode > 31 && (charCode < 43 || charCode > 57))
            return false;
        return true;
    }
</script>
<script>
        function Sum() {
                 if () { 
                      document.getElementById('sS').value = sE * S1.toFixed(2); 
                       }
                  else if () { 
                      document.getElementById('sS').value = sE * S1.toFixed(2); 
                              }       
                  
                  else if () 
                    {
                  var sS = document.getElementById('sS').value;
                  if () { 
                           document.getElementById('sE').value = sS / S1.toFixed(2); 
                        }
                 else if () { 
                           document.getElementById('sE').value = sS / S2.toFixed(2); 
                            }
                    } 
        
        var s = 0;
        var sum = 0;
        if (document.getElementById('sS').value != null) {
            s = document.getElementById('sS').value; 
                                                         }
        sum = parseFloat(Number(s));
        document.getElementById('sum').value = parseFloat(sum).toFixed(2);
    }
</script>
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось dark_mc, 18.05.2015 в 21:26.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.05.2015, 21:26
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 15.05.2015 
					
					
					
						Сообщений: 41
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 dark_mc, 
 а почему в if-ах нету условий?) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.05.2015, 01:08
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.05.2015 
					
					
					
						Сообщений: 13
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Вот, перепробовал все связи, ставил условие, не пашет и все, что я не правильно делаю в if? помогите пожалуйста. 
<form name="test">
    Тарифы:
    <br>
    <input id="S1" value="0.32300" type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)">
    <input id="S2" value="63" type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)">
    <br>
    Расчет:
    <br>
    <input id="sS"  type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)">
    <input id="sE"  type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)">
    <br>
    Итог:
    <br>
    <input id="sum"  readonly="readonly" type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)">
    
</form>
<script>
    function isNumberKey(evt) {
        var charCode = (evt.which) ? evt.which : event.keyCode
        if (charCode > 31 && (charCode < 43 || charCode > 57))
            return false;
        return true;
    }
</script>
<script>
   function Summ(index) {
        if (test) { 
                   document.getElementById('sS').value = sE * S1.toFixed(2); 
                   }
        else if (test) {
                   document.getElementById('sS').value = sE * S1.toFixed(2); 
                   }       
        else if (index)
                   {
                       var sS = document.getElementById('sS').value;
                       if (test) {
                                   document.getElementById('sE').value = sS / S1.toFixed(2); 
                                 }
                       else if (test) {
                                    document.getElementById('sE').value = sS / S2.toFixed(2); 
                                 }
                                 } 
        
    var s = 0;
    var sum = 0;
    if (document.getElementById('sS').value != null)
            {
                 s = document.getElementById('sS').value; 
            }
        sum = parseFloat(Number(s));
        document.getElementById('sum').value = parseFloat(sum).toFixed(2);
    }
</script>
П.С. Я знаю что в иф не надо (test) писать.  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |