Здравствуйте столкнулся с проблемой оптимизации кода. Исходный код: [js] function count() { var sum_dollar; var amster = document.getElementById('amster').value; var strm8 = document.getElementById('strm8').value; var strmr = document.getElementById('strmr').value; if(isNaN(amster)) { correctNumber('amster'); } if(isNaN(strm8)) { correctNumber('strm8'); } if(isNaN(strmr)) { correctNumber('strmr'); } sum_dollar = parseFloat(amster) + parseFloat(strm8) + parseFloat(strmr) document.getElementById('total1').innerHTML = sum_dollar.toFixed(2); } function correctNumber(site) { if(site == 'amster') { var amster = document.getElementById('amster').value; var change = amster.replace(",","."); document.calculator.amster.value = change; } if(site == 'strm8') { var strm8 = document.getElementById('strm8').value; var change = strm8.replace(",","."); document.calculator.strm8.value = change; } if(site == 'strmr') { var strmr = document.getElementById('strmr').value; var change = strmr.replace(",","."); document.calculator.strmr.value = change; } } [/js] Данный код предназначен для корректировки значений (введённые число с запятой преобразуется в число с точкой). Хотелось бы реализовать функцию correctNumber в виде стандартной функции которой можно было передавать только одно значение, id элемента формы.
[js]function count(){ var total=document.getElementById('total1'); var sum_dollar=0; var ids=new Array( 'amster', 'strm8', 'strmr' ); for(var i in ids){ var elem=document.getElementById(ids); elem.value=elem.value.replace(",","."); sum_dollar+=parseFloat(elem.value); } total.innerHTML=sum_dollar.toFixed(2); }[/js]
[js]function correctNumber(site) { var lobster = document.getElementById(site).value; var change = lobster .replace(",","."); document.calculator[lobster].value = change; }[/js]