|
Калькулятор - числа с запятой/точкой
Не пинайте жёстко - первый пост. Мне нужен JavaScript и чтобы его освоить нужна помощь на этом форуме. Надеюсь быстро освою форум и буду делать в дальнейшем всё правильно, согласно установленным обычаям.
Пишу калькулятор. Подключена jQuery. Не могу разобраться: проблема чтобы сделать возможность ввода чисел с сотыми (два знака после запятой). Код HTML: <div> <h4>Прямоугольник</h4> <p>Длина прямоугольника: <input id="val_a" type="number" step="0.01" min="0.01" /></p> <p>Ширина прямоугольника: <input id="val_b" type="number" step="any" min="0.01"/></p> <div>Площадь прямоугольника:<span id="pls"></span> м.кв.</div> </div> Скрипт: var a, b; a = $('#val_a').val(); //Длина прямоугольника b = $('#val_b').val(); //Ширина прямоугольника a = parseInt(a); b = parseInt(b); pl_s = a * b; //Площадь $('#pls').html(pl_s); У меня получается parseInt игнорирует при расчёте знаки после точки или запятой. А если убираю parseInt - то мозила не пропускает ввод чисел с точкой. Хотелось бы чтобы была возможность использования как точки так и запятой. Можете подсказать или подправить? |
|
<html> <head> </head> <body> <div> <h4>Прямоугольник</h4> <p>Длина прямоугольника: <input id="val_a" type="number" step="0.01" min="0.01" /></p> <p>Ширина прямоугольника: <input id="val_b" type="number" step="0.01" min="0.01"/></p> <div>Площадь прямоугольника:<span id="pls"></span> м.кв.</div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> $('input').on('input', function(){ var a, b; a = $('#val_a').val(); //Длина прямоугольника b = $('#val_b').val(); //Ширина прямоугольника a = parseFloat(a); b = parseFloat(b); pl_s = a * b; //Площадь $('#pls').html(pl_s); }); </script> </body> </html> |
Спасибо! Теперь считает с дробными числами.
Остаётся вопрос с мазилой, она не хочет пропускать дроби через точку (хром работает как с точкой так и с запятой). Нет ли способа подружить и мазилу с точкой? Или делать подсказку о вводе через запятую и рекомендацией на использование хром-браузера? |
Для данной операции и parseFloat() не потребуется, уж тогда проверять что возвращает parseFloat(), иначе ни к чему.
alert('0.5' * '0.7') |
Цитата:
|
Цитата:
Хром работает как с точкой так и с запятой, а мазила если цифра с точкой подсвечиваем красным input и в результат ставит 0. Запятую обрабатывает правильно. |
Цитата:
|
можно создать свой кастомный input тогда будет работать
|
MC-XOBAHCK,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> <script> $(function() { $('input').on('input', function(){ var a, b, pl_s; a = $('#val_a').val().trim().replace(/,/,'.'); //Длина прямоугольника b = $('#val_b').val().trim().replace(/,/,'.');; //Ширина прямоугольника a = parseFloat(a)||0; b = parseFloat(b)||0; pl_s = a * b; //Площадь $('#pls').html(pl_s.toFixed(2)); }) }); </script> </head> <body> <div> <h4>Прямоугольник</h4> <p>Длина прямоугольника: <input id="val_a" /></p> <p>Ширина прямоугольника: <input id="val_b" /></p> <div>Площадь прямоугольника:<span id="pls"></span> м.кв.</div> </div> </body> </html> |
Часовой пояс GMT +3, время: 02:49. |
|