(function ($) {
$(function () {
calculate();
jQuery('#calculator input, #calculator select').change(function() {
calculate();
});
jQuery('#calculator input').keyup(function() {
calculate();
});
function calculate() {
$('.calculator').each(function(key, val){
calcInputs = {};
$(this).find('input, select').each(function(key, val){
name = $(this).attr('name');
val = $(this).val();
calcInputs[name] = val;
});
val += 'text';
total = 0;
switch (calcInputs.texture) {
case '1500':
total += calcInputs.area * 1500;
break;
case '2000':
total += calcInputs.area * 2000;
break;
case '2500':
total += calcInputs.area * 2500;
break;
case '3000':
total += calcInputs.area * 3500;
break;
case '3500':
total += calcInputs.area * 4000;
break;
case '4500':
total += calcInputs.area * 4500;
break;
case '5000':
total += calcInputs.area * 5000;
break;
case '5500':
total += calcInputs.area * 5500;
break;
case '6000':
total += calcInputs.area * 6000;
break;
default:
break;
}
switch (calcInputs.dia) {
case '1':
total *= calcInputs.area * 1;
break;
case '2':
total *= calcInputs.area * 2;
break;
case '3':
total *= calcInputs.area * 3;
break;
case '4':
total *= calcInputs.area * 4;
break;
case '5':
total *= calcInputs.area * 5;
break;
case '6':
total *= calcInputs.area * 6;
break;
case '7':
total *= calcInputs.area * 7
break;
case '8':
total *= calcInputs.area * 8;
break;
default:
break;
}
switch (calcInputs.tip) {
case '1':
total *= calcInputs.area * 1;
break;
case '1.3':
total *= calcInputs.area * 1.3;
break;
case '2':
total *= calcInputs.area * 2;
break;
default:
break;
}
switch (calcInputs.rasp) {
case '1.1':
total *= calcInputs.area * 1.1;
break;
case '1':
total *= calcInputs.area * 1;
break;
case '1.05':
total *= calcInputs.area * 1.05;
break;
default:
break;
}
switch (calcInputs.pers) {
case '1':
total *= calcInputs.area * 1;
break;
case '1.1':
total *= calcInputs.area * 1.1;
break;
case '1.2':
total *= calcInputs.area * 1.2;
break;
default:
break;
}
// каждый угол
total *= calcInputs.corners * 1;
totaled = total;
totaled /= calcInputs.corners / 1;
install = calcInputs.area * 1;
total += install;
total = total.toFixed(2);
total += ' руб.';
jQuery(this).find('span.total').html(total);
installed = calcInputs.area * 1;
totaled += installed;
totaled = totaled.toFixed(2);
totaled += ' руб.';
jQuery(this).find('span.totaled').html(totaled);
var pr = $('.total span').text();
$('#123sp').val(pr);
var pre = $('.totaled span').text();
$('#1234sp').val(pre);
});
}
});
})(jQuery);
;
калькуляция происходит мнгновенно, не могу понять как калькуляцию сделать после ввода input, вроде как можно атрибутом onchange в input, но он вроде как не хочет работать, т.к. результат передаётся в span.
По сути нужно, чтобы до ввода в input не было результата в span, думал как реализовать через if, но так и не смог додумкать.