Два условия в расчете в калькуляторе
Добрый день.
Прошу помощи с калькулятором на сайте. Сейчас работает по принципу: Если стоит галочка, то сумма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, а в чем у вас сложность возникла?
|
скорее всего не так где-то в деталях кода - калькулятор изначально делал в конфигураторе, потом вносил в него изменения, но второе условие сейчас не получается добавить.
посмотрите, пжлста, вот такой получился последний вариант с двумя условиями. скорее какие-то скобки или ; или знак < не так я ставлю ... 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, может так?
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» разве существует? |
спасибо за ответ, но не сработало.
решил модернизацией своего кода с помощью того же конструктора. Если ( галочка ) То Если ( № 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, в вашем "итоговом коде" используются совершенно другие поля.
Ну да ладно, работает как нужно и фиг с ним. |
romanmysin,
[js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
да, переменных меньше, т.к. воспроизводить заново полностью с бОльшим числом переменных было тяжело и объединил суммы в одну. Нужно было для примера - как и куда вставляются условия.
спасибо Nexus и Рони. |
Цитата:
|
laimas,
тут даже http://jsbeautifier.org/ бессилен! :) |
Часовой пояс GMT +3, время: 08:50. |