 
			
				18.08.2017, 04:45
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.08.2017 
					
					
					
						Сообщений: 4
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Два условия в расчете в калькуляторе
			 
			
		
		
		
		Добрый день. 
Прошу помощи с калькулятором на сайте.
 
Сейчас работает по принципу: 
Если стоит галочка, 
то сумма1+15%, 
иначе сумма2+15%
 
Необходимо добавить еще одно условие, при котором, если 15% меньше 2500, то прибавляем не 15%, а 2500.
 
То есть должно получиться: 
Если стоит галочка, 
то Если сумма1+15% < сумма1+2500, 
то сумма1+2500, 
иначе Если сумма2+15% < сумма2+2500, 
то сумма2+2500
 
if ( $('#id_16 input').prop('checked') )  result_proc =(parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val())+parseFloat($('#id_16 input').val()))+(parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val())+parseFloat($('#id_16 input').val()))*0.15; else  result_proc =(parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val()))+(parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val()))*0.15
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось romanmysin, 19.08.2017 в 11:43.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.08.2017, 07:56
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 romanmysin, а в чем у вас сложность возникла? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.08.2017, 20:42
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.08.2017 
					
					
					
						Сообщений: 4
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		скорее всего не так где-то в деталях кода - калькулятор изначально делал в конфигураторе, потом вносил в него изменения, но второе условие сейчас не получается добавить. 
посмотрите, пжлста, вот такой получился последний вариант с двумя условиями. 
скорее какие-то скобки или ; или знак < не так я ставлю ...
 
if ( $('#id_16 input').prop('checked') )  result_proc =if ((parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val())+parseFloat($('#id_16 input').val()))*0,15<2500) result_proc =(parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val())+parseFloat($('#id_16 input').val()))+2500; else  (parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val())+parseFloat($('#id_16 input').val()))+(parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val())+parseFloat($('#id_16 input').val()))*0,15; else if ((parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val()))*0,15<2500) result_proc =(parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val()))+2500; else (parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val()))+(parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_8 option:selected').val())+parseFloat($('input:radio[name=radio_9]:checked').val())+parseFloat($('input:radio[name=radio_10]:checked').val())+parseFloat($('#id_7 option:selected').val()))*0,15
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось romanmysin, 23.02.2019 в 18:37.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.08.2017, 23:30
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		romanmysin, может так?
 
var summ=0,//сумма
	data={//айдишники полей
		options:[1,8,7],//опции
		radio:[9,10]//радио
		input:[]//инпуты
	},
	selectors={
		options:'#id_%id% option:selected',
		radio:'input[type="radio"][name=radio_%id%]:checked',
		input:'#id_%id% input'
	};
	percent=15,//надбавка в процентах
	min_percent_value=2500;//минимальная надбавка
if($('#id_16 input').prop('checked'))
	data.input.push(16);
for(var i in data){
	if(!data.hasOwnProperty(i)) 
		continue;
	
	for(var j=0;j<data[i].length;j++){
		summ+=parseFloat($(selectors[i].replace('%id%',data[i][j])).val());
	};
};
var plus=summ*(percent/100);//Получаю значение надбавки
plus=plus>=min_percent_value?plus:min_percent_value;//Если надбавка меньше минимальной надбавки, то надбавка равна минимальной...
result_proc=summ+plus;
Upd. Псевдо класс «radio» разве существует?  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Nexus, 18.08.2017 в 23:35.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.08.2017, 01:42
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.08.2017 
					
					
					
						Сообщений: 4
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		спасибо за ответ, но не сработало. 
решил модернизацией своего кода с помощью того же конструктора.
 
Если ( галочка ) То 
 
Если ( № 1 × 0.15 < 2500 ) То  
Результат = № 1 + 2500  
Иначе  
Результат = № 1 + № 1 × 0.15 
 
Иначе Если ( № 2 × 0.15 < 2500 ) То  
Результат = № 2 + 2500  
Иначе  
Результат = № 2 + № 2 × 0.15
 
if ( $('#id_3 input').prop('checked') )  if ( parseFloat($('#id_1 option:selected').val())*0.15<2500 )  result_proc =parseFloat($('#id_1 option:selected').val())+2500; else  result_proc =parseFloat($('#id_1 option:selected').val())+parseFloat($('#id_1 option:selected').val())*0.15; else  if ( parseFloat($('#id_2 option:selected').val())*0.15<2500 )  result_proc =parseFloat($('#id_2 option:selected').val())+2500; else  result_proc =parseFloat($('#id_2 option:selected').val())+parseFloat($('#id_2 option:selected').val())*0.15
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось romanmysin, 19.08.2017 в 11:42.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.08.2017, 09:52
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 romanmysin, в вашем "итоговом коде" используются совершенно другие поля. 
Ну да ладно, работает как нужно и фиг с ним. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.08.2017, 10:30
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		romanmysin,
  
[js]
... ваш код...
[/js]
 
О том, как вставить в сообщение  исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте  http://javascript.ru/formatting.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.08.2017, 11:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.08.2017 
					
					
					
						Сообщений: 4
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 да, переменных  меньше, т.к. воспроизводить заново полностью с бОльшим числом переменных было тяжело и объединил суммы в одну. Нужно было для примера - как и куда вставляются условия.  
спасибо Nexus и Рони. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.08.2017, 11:52
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от рони
			
		
	 | 
 
	| 
		О том, как вставить в сообщение
	 | 
 
	
 
 Лучше не стало.    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.08.2017, 11:56
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		laimas, 
 тут даже  http://jsbeautifier.org/ бессилен!    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |