JS калькулятор работает везде кроме iphone, на iphone NAN ошибка
Я создал калькулятор Html + JS, который отлично работает, кроме iPhone, на iPhone результат — NAN. Не могу найти решение, что-то в алгоритме расчета скрипта.
Я отрезал html и JS калькулятора и вставил их в новый html файл, ничего лишнего, ни дополнительных скриптов, все работает на любом протестированном устройстве (проверено на ПК, ноутбуке, телефонах Android), кроме iPhone, результат iPhone - NAN, нет знаю, почему.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="ru-ru" dir="ltr">
<meta charset="UTF-8">
<span style="font-size: 28px; color: #333;" id="res2" class="prdef_val">1411000</span> р.
<br />
Calc inputs:
<ul style="font-size: 12px;" class="uk-list uk-hidden">
<li class="el-item">
<div class="el-content uk-panel"><div id="price-def">1411000</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="brus145x145">65630</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="brus145x195">249380</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="brus140x140">249380</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="brus140x190">474130</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="fung_svai">116000</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="fung_lent">289000</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="fung_zbs">165000</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="fung_rostverk">320000</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="krovl_ondulin">125000</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="krovl_met">171000</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="krovl_metprof">140000</div></div> </li>
<li class="el-item">
<div class="el-content uk-panel"><div id="krovl_gibk">265000</div></div> </li>
</ul>
<div class="calc_winner brus_winner" style="">
<form action="#" method="GET">
<div class="calc-title">
<div class="calc-h3">Values select title</div>
</div>
<div class="brus-flex">
<div class="calc-vals">
<label class="calc-vals-label1">Subvalue title1:</label>
<div class="brtipflexin1">
<div>
<input type="hidden" name="input_radio_3" value="" alt="ghost">
<span class="radio_3_0_label">150x150 </span>
<input onclick="fn_summ()" type="radio" name="input_radio_3" id="input_radio_3_0" title="" value="1100000
" class="radio_3_0" checked="checked">
<label for="input_radio_3_0"></label>
</div>
<div>
<span class="radio_3_1_label">145x145</span>
<input onclick="fn_summ()" type="radio" name="input_radio_3" id="input_radio_3_1" title="" value="" class="radio_3_1">
<label for="input_radio_3_1" class="radio_3_1_label"></label>
</div>
<div>
<span class="radio_3_2_label">145x195</span>
<input onclick="fn_summ()" type="radio" name="input_radio_3" id="input_radio_3_2" title="" value="" class="radio_3_2">
<label for="input_radio_3_2" class="radio_3_2_label"></label>
</div>
</div>
<label class="calc-vals-label2">Subvalue title2:</label>
<div class="brtipflexin2">
<div>
<span class="radio_3_3_label">145x145</span>
<input onclick="fn_summ()" type="radio" name="input_radio_3" id="input_radio_3_3" title="" value="" class="radio_3_3">
<label for="input_radio_3_3" class="radio_3_3_label"></label>
</div>
<div>
<span class="radio_3_4_label">145x195</span>
<input onclick="fn_summ()" type="radio" name="input_radio_3" id="input_radio_3_4" title="" value="" class="radio_3_4">
<label for="input_radio_3_4" class="radio_3_4_label"></label>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="calc_winner2 fundcalc" style="">
<form action="#" method="GET">
<div class="calc-title">
<div class="calc-h3">Fundament title</div>
</div>
<p class="calc-vals">
<input type="hidden" name="input_radio_4" value="" alt="ghost">
<span class="radio_4_0_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_4" id="input_radio_4_0" title="" value="" class="radio_4_0" checked="checked">
<label for="input_radio_4_0">Fund val 1</label>
<span class="radio_4_1_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_4" id="input_radio_4_1" title="" value="" class="radio_4_1">
<label for="input_radio_4_1" class="radio_4_1_label">Fund val 2</label>
<span class="radio_4_2_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_4" id="input_radio_4_2" title="" value="" class="radio_4_2">
<label for="input_radio_4_2" class="radio_4_2_label">Fund val 3</label>
<span class="radio_4_3_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_4" id="input_radio_4_3" title="" value="" class="radio_4_3">
<label for="input_radio_4_3" class="radio_4_3_label">Fund val 4</label>
<span class="radio_4_4_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_4" id="input_radio_4_4" title="" value="" class="radio_4_4">
<label for="input_radio_4_4" class="radio_4_4_label">Fund val 5</label>
</p>
</form>
</div>
<div class="calc_winner2" style="">
<form action="#" method="GET">
<div class="calc-title">
<div class="calc-h3">Subvalue title3:</div>
</div>
<p class="calc-vals">
<input type="hidden" name="input_radio_5" value="" alt="ghost">
<span class="radio_5_0_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_5" id="input_radio_5_0" title="" value="" class="radio_5_0" checked="checked">
<label for="input_radio_5_0">Krovl_val1</label>
<span class="radio_5_1_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_5" id="input_radio_5_1" title="" value="" class="radio_5_1">
<label for="input_radio_5_1" class="radio_5_1_label">Krovl_val2</label>
<span class="radio_5_2_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_5" id="input_radio_5_2" title="" value="" class="radio_5_2">
<label for="input_radio_5_2" class="radio_5_2_label">Krovl_val3</label>
<span class="radio_5_3_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_5" id="input_radio_5_3" title="" value="" class="radio_5_3">
<label for="input_radio_5_3" class="radio_5_3_label">Krovl_val4</label>
<span class="radio_5_4_label"></span>
<input onclick="fn_summ()" type="radio" name="input_radio_5" id="input_radio_5_4" title="" value="" class="radio_5_4">
<label for="input_radio_5_4" class="radio_5_4_label">Krovl_val5</label>
</p>
</form>
</div>
<script> // this is script for animate result number
(function(d){var r=function(b){return b.split("").reverse().join("")},m={numberStep:function(b,a){var e=Math.floor(b);d(a.elem).text(e)}},g=function(b){var a=b.elem;a.nodeType&&a.parentNode&&(a=a._animateNumberSetter,a||(a=m.numberStep),a(b.now,b))};d.Tween&&d.Tween.propHooks?d.Tween.propHooks.number={set:g}:d.fx.step.number=g;d.animateNumber={numberStepFactories:{append:function(b){return function(a,e){var f=Math.floor(a);d(e.elem).prop("number",a).text(f+b)}},separator:function(b,a,e){b=b||" ";
a=a||3;e=e||"";return function(f,k){var u=0>f,c=Math.floor((u?-1:1)*f).toString(),n=d(k.elem);if(c.length>a){for(var h=c,l=a,m=h.split("").reverse(),c=[],p,s,q,t=0,g=Math.ceil(h.length/l);t<g;t++){p="";for(q=0;q<l;q++){s=t*l+q;if(s===h.length)break;p+=m[s]}c.push(p)}h=c.length-1;l=r(c[h]);c[h]=r(parseInt(l,10).toString());c=c.join(b);c=r(c)}n.prop("number",f).text((u?"-":"")+c+e)}}}};d.fn.animateNumber=function(){for(var b=arguments[0],a=d.extend({},m,b),e=d(this),f=[a],k=1,g=arguments.length;k<g;k++)f.push(arguments[k]);
if(b.numberStep){var c=this.each(function(){this._animateNumberSetter=b.numberStep}),n=a.complete;a.complete=function(){c.each(function(){delete this._animateNumberSetter});n&&n.apply(this,arguments)}}return e.animate.apply(e,f)}})(jQuery);</script>
<script> // calculation script
function fn_summ() {
if (document.getElementById('input_radio_3_0').checked) {
var price_default = parseFloat(document.getElementById('price-def').innerHTML);
var price_145_145 = 0;
var price_145_195 = 0;
var price_140_140 = 0;
var price_140_190 = 0;
} else if (document.getElementById('input_radio_3_1').checked) {
var price_default = parseFloat(document.getElementById('price-def').innerHTML);
var price_145_145 = parseFloat(document.getElementById('brus145x145').innerHTML);
var price_145_195 = 0;
var price_140_140 = 0;
var price_140_190 = 0;
} else if (document.getElementById('input_radio_3_2').checked) {
var price_default = parseFloat(document.getElementById('price-def').innerHTML);
var price_145_145 = 0;
var price_145_195 = parseFloat(document.getElementById('brus145x195').innerHTML);
var price_140_140 = 0;
var price_140_190 = 0;
} else if (document.getElementById('input_radio_3_3').checked) {
var price_default = parseFloat(document.getElementById('price-def').innerHTML);
var price_145_145 = 0;
var price_145_195 = 0;
var price_140_140 = parseFloat(document.getElementById('brus140x140').innerHTML);
var price_140_190 = 0;
} else if (document.getElementById('input_radio_3_4').checked) {
var price_default = parseFloat(document.getElementById('price-def').innerHTML);
var price_145_145 = 0;
var price_145_195 = 0;
var price_140_140 = 0;
var price_140_190 = parseFloat(document.getElementById('brus140x190').innerHTML);
}
if (document.getElementById('input_radio_4_0').checked) {
var price_default_fund = 0;
var price_fund_svay = 0;
var price_fund_lent = 0;
var price_fund_jbs = 0;
var price_fund_rostverk = 0;
} else if (document.getElementById('input_radio_4_1').checked) {
var price_default_fund = 0;
var price_fund_svay = parseFloat(document.getElementById('fung_svai').innerHTML);
var price_fund_lent = 0;
var price_fund_jbs = 0;
var price_fund_rostverk = 0;
} else if (document.getElementById('input_radio_4_2').checked) {
var price_default_fund = 0;
var price_fund_svay = 0;
var price_fund_lent = parseFloat(document.getElementById('fung_lent').innerHTML);
var price_fund_jbs = 0;
var price_fund_rostverk = 0;
} else if (document.getElementById('input_radio_4_3').checked) {
var price_default_fund = 0;
var price_fund_svay = 0;
var price_fund_lent = 0;
var price_fund_jbs = parseFloat(document.getElementById('fung_zbs').innerHTML);
var price_fund_rostverk = 0;
} else if (document.getElementById('input_radio_4_4').checked) {
var price_default_fund = 0;
var price_fund_svay = 0;
var price_fund_lent = 0
var price_fund_jbs = 0;
var price_fund_rostverk = parseFloat(document.getElementById('fung_rostverk').innerHTML);
}
if (document.getElementById('input_radio_5_0').checked) {
var price_default_kr = 0;
var price_kr_ond = 0;
var price_kr_met = 0;
var price_kr_metprof = 0;
var price_kr_cherep = 0;
} else if (document.getElementById('input_radio_5_1').checked) {
var price_default_kr = 0;
var price_kr_ond = parseFloat(document.getElementById('krovl_ondulin').innerHTML);
var price_kr_met = 0;
var price_kr_metprof = 0;
var price_kr_cherep = 0;
} else if (document.getElementById('input_radio_5_2').checked) {
var price_default_kr = 0;
var price_kr_ond = 0;
var price_kr_met = parseFloat(document.getElementById('krovl_met').innerHTML);
var price_kr_metprof = 0;
var price_kr_cherep = 0;
} else if (document.getElementById('input_radio_5_3').checked) {
var price_default_kr = 0;
var price_kr_ond = 0;
var price_kr_met = 0;
var price_kr_metprof = parseFloat(document.getElementById('krovl_metprof').innerHTML);
var price_kr_cherep = 0;
} else if (document.getElementById('input_radio_5_4').checked) {
var price_default_kr = 0;
var price_kr_ond = 0;
var price_kr_met = 0;
var price_kr_metprof = 0;
var price_kr_cherep = parseFloat(document.getElementById('krovl_gibk').innerHTML);
}
var value_itog = parseFloat(price_default) + parseFloat(price_145_145) + parseFloat(price_145_195) + parseFloat(price_140_140) + parseFloat(price_140_190) + parseFloat(price_default_fund) + parseFloat(price_fund_svay) + parseFloat(price_fund_lent) + parseFloat(price_default_kr) + parseFloat(price_kr_ond) + parseFloat(price_kr_met) + parseFloat(price_fund_jbs) + parseFloat(price_fund_rostverk) + parseFloat(price_kr_metprof) + parseFloat(price_kr_cherep);
document.getElementById('res2').innerHTML = (value_itog);
var comma_separator_number_step = jQuery.animateNumber.numberStepFactories.separator(' ')
var percent_number_step = jQuery.animateNumber.numberStepFactories.append(' р.')
jQuery('#res2').animateNumber({
number: value_itog,
numberStep: comma_separator_number_step
});
}
</script>
<script>
window.onload = function() {
fn_summ();
}
</script>
</html>
Помогите пожалуйста найти решение