Добавить в скрипт замену запятой, на точку
Всем привет!
Есть рабочий скрипт корзины.
При вводе в поле количества требуемого товара, скрипт выдаёт результат.
Проблема: Кода в это же поле вводишь дробное число с запятой (1224,087) - вместо результата появляется "NаN"
Ето может случится где угодно и в любом скрипте. Например, в каком нибудь банальном калькуляторе.
Прикладываю код:
//Поле ввода "Количество" <input name='weight' size=5 class='email' onchange='javascript:ccount();' style='width:100px;' value='".$arr['weight'.$vartpl[4]]."'> //Java скрипт <script language='Javascript'> <!-- function ccount() { document.getElementById('cost2').innerHTML = document.order.cost1.value * document.order.weight.value; document.order.cost.value = document.order.cost1.value * document.order.weight.value; //--> </script> //Результат <div id='cost2' class='email' style='float:left;'>".$arr['cost'.$vartpl[4]]." </div > $arr[cash]</div>
Решение:
Заменяем в коде запятую на точку в получении данных.
Функция замены запятой в PHP:
$_POST['weight'] = str_replace (',','.',$_POST['weight']);
Функция замены запятой в Java Script:
document.order.cost.value = document.order.cost1.value * document.order.weight.value.replace (/\,/, '.');
Если необходимо отрезать все после запятой, то воспользуйтесь функцией parseFloat()
Из любого "числа с запятой" получите лишь его целую часть - parseFloat отбросит и запятую, и всё, что после неё.
var pi = '3,1415926'; alert (parseFloat (pi));