Как сделать, чтобы значения input radio в переменной обновлялись при нажатии
Приветствую!
У меня калькулятор цен. Всё работает, но есть проблема: 1 есть Блок радиокнопок 2 Их значения записываются в переменную var premises = $("input[name='premises']:checked").val(); 3 Конечная формула в которой суммируются все переменные вместе с этой var amount = Math.ceil ((сamcorders_a + сamcorders_b) * distance_between * max_h * premises * lifetime * cost_of_time + psu * cost_of_time); И вроде бы всё OK.., Ан нет... Дело в том, что при переключении радиобатонов переменная premises не обновляется на лету, а только после того как будет изменено одно из значений других обычных input(ов) ): Мало того. что это бесит, но это ещё даёт не верный результат, когда при пересчёте последним действием юзер выбирает из вариантов блока радиокнопок... Как быть? |
На всякий случай полный код:
jQuery(document).ready(function($){ window.onload = function(){ var intc = document.querySelectorAll(".int"); var result = document.getElementById("total"); for(var n = 0; n <= intc.length - 1; n++){ intc[n].addEventListener("keyup", function(){ var сamcorders_a = (parseFloat(intc[0].value))*0.835; var сamcorders_b = (parseFloat(intc[1].value))*0.501; var amt_сamcorders = (parseFloat(intc[0].value))+(parseFloat(intc[1].value)); var distance_between = (parseFloat(intc[2].value)); var max_h = (parseFloat(intc[3].value)); var psu = (parseFloat(intc[4].value)); var premises = $("input[name='premises']:checked").val(); var lifetime = (parseFloat(intc[8].value)); var cost_of_time = 801; if(distance_between <= 50){ distance_between = 1; } else if(50 < distance_between && distance_between <= 70){ distance_between = 1.1; } else if(70 < distance_between && distance_between <= 100){ distance_between = 1.2; } else if(100 < distance_between){ distance_between = 1.3; } if(max_h <= 3){ max_h = 1; } else if(3 < max_h ){ max_h = 1.3; } if(psu <= (amt_сamcorders/5)){ psu = 0; } else if(psu > (amt_сamcorders/5)){ psu = (amt_сamcorders/5)*0.3*1.67; } if(lifetime <= 1){ lifetime = 1; } else if(1 < lifetime && lifetime <= 3){ lifetime = 1.1; } else if(3 < lifetime ){ lifetime = 1.2; } var amount = Math.ceil ((сamcorders_a + сamcorders_b) * distance_between * max_h * premises * lifetime * cost_of_time + psu * cost_of_time); if(isNaN(amount)){ amount = 'Пожалуйста заполните все поля калькулятора'; } result.innerHTML = amount; }, false); } } $("#button1").click( function() { $('.bt').css({'display': 'block' }); }); $(".int").click( function() { $('.bt').css({'display': 'none' }); }); }); |
Мне казалось, что написание калькуляторов цен весьма распрастранённое дело...
Не уж то никто не сталкивался с подобной проблемой? ); Или на неё просто забивают?... |
Mitrich,
может поставить клик на радио а не keyup и определится бы jQuery или не jQuery но это как хотите |
Часовой пояс GMT +3, время: 16:36. |