Показать сообщение отдельно
  #27 (permalink)  
Старый 11.08.2017, 17:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Хотя так, ибо возврат из второго в первые единицы тоже нужно учесть.

<html>
<head>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(function() { 
    var side = $('.side').on('input keyup', function() {
        var a = this.value = this.value.replace(/[^\d,.]/,'').replace(/,/,'.'), 
            b = parseFloat(side.not(this).val()) || '',
            u = +unit.filter(':checked').val();
              
        $('#area').text(parseFloat(a) && b ? (a * b).toFixed(u)+ ' ' + ['мм²',,'м²'][u] : '')
         
    }), unit = $('[name="unit"]').change(function() {
            var u = +this.value;
            side.val(function() {
                if(parseFloat(this.value)) return  u ? this.value / 1000 : this.value * 1000
            }).trigger('keyup')
    });
});
  </script>
</head>
 
<body>
<div>
<h4>Прямоугольник</h4>
<label><input type="radio" name="unit" value="2" checked="" /> метры</label>
<label><input type="radio" name="unit" value="0" /> миллиметры</label>

<p>Длина прямоугольника: <input class="side" /></p>
<p>Ширина прямоугольника: <input class="side" /></p>

<div>Площадь прямоугольника: <span id="area"></span></div>
</div>
 
</body>
</html>

Последний раз редактировалось laimas, 11.08.2017 в 19:09.
Ответить с цитированием