Здравствуйте. Столкнулся со следующей проблемой. Есть элемент html формы: HTML: <tr> <th width="100px">Flirt4Free</th> <td> <input name="f4f" id="f4f" type="text" size="12" maxlength="5" value="<?php echo $f4f?>" onchange="count()" dir="rtl" onFocus="this.select()"/> </td> </tr> <tr> <th width="100px">Stream</th> <td> <input name="strm8" id="strm8" type="text" size="7" maxlength="7" value="<?php echo $strm8?>" onchange="count()" onFocus="this.select()" dir="rtl"/> </td> </tr> <tr> <th>Total </th> <td> <p id="total1"> </p> </td> </tr> Функция count(): [js] function count() { var sum_dollar; var f4f = document.getElementById('f4f').value; var strm8 = document.getElementById('strm8').value; if(isNaN(strm8)) { correctNumber('strm8'); } if(isNaN(f4f)) { correctNumber('f4f'); } else { } f4f = f4f * 0.0325; sum_dollar = f4f + parseFloat(strm8); document.getElementById('total1').innerHTML = sum_dollar.toFixed(2); } function correctNumber(site) { if(site == 'f4f') { var f4f = document.getElementById('f4f').value; var change = f4f.replace(",","."); document.calculator.f4f.value = change; } if(site == 'strm8') { var strm8 = document.getElementById('strm8').value; var change = strm8.replace(",","."); document.calculator.strm8.value = change; } } [/js] Работа данного приложения заключается в том чтобы если в поле введено значение с запятой, correctNumber убрало запятую и произвела сложение по полям, выведя значение в поле total1. Так вот, если в поле F4F ввести 1,654 то в поле total мы видим NaN, хотя при вводе в поле strm8 1,45 все ок.
В теме "Оптимизация кода" я хотел научиться как "приводить все к общему виду". Тут я не могу понять почему у меня избирательно работает код. В одном поле он делает преобразование нормально в другом нет.
приводите все переменные к float перед тем как складывать или умножать ато получается вы умножаете строку на число после replace переменная приводится к строке...