Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Заменить запятую на точку в калькуляторе (https://javascript.ru/forum/events/61763-zamenit-zapyatuyu-na-tochku-v-kalkulyatore.html)

Stay_Strong 07.03.2016 09:44

Заменить запятую на точку в калькуляторе
 
Доброго времени суток всем! Скажите, как можно заменить запятую на точку в калькуляторе. Пробовал так:
var room_length = document.getElementById('room_length').value.replace(/\./g,','),
room_width = document.getElementById('room_width').value.replace(/\./g,',')

Затем пробовал так:
var room_length = document.getElementById('room_length').value;
room_length.replace(/\./g,',')

Но ничего не выходит. Подскажите, пожалуйста.

рони 07.03.2016 10:19

Stay_Strong,
результат добавьте обратно в свойство

рони 07.03.2016 10:33

Stay_Strong,
var room_length = document.getElementById('room_length'),
room_width = room_length.value.replace(/\./g,',');
room_length.value = room_width;

Stay_Strong 07.03.2016 12:06

Цитата:

Сообщение от рони (Сообщение 410162)
Stay_Strong,
var room_length = document.getElementById('room_length'),
room_width = room_length.value.replace(/\./g,',');
room_length.value = room_width;

Спасибо, что нашли время откликнуться на мой вопрос. Но этот метод не работает. Он просто перестает считать. Может быть я как-то не понятно изъясняюсь? Там две разные переменные (высоты и ширины). Приведу пример для одной из них.

Ввожу переменную высоты
var room_length_nan = document.getElementById('room_length').value, // берем значение введенное в инпут
room_length = room_length_nan.value.replace(/\./g,','); // создаем переменную от значения, где запятую меняем на точку
room_length_nan.value = room_length; // присваиваем значению введенной переменной новое значение

Результат, калькулятор ломается.

Пошел дальше:
Вывожу в поле значение новое
document.getElementById('room_length').textContent = room_length; //вывожу в инпут новое значение

Ничего не происходит калькулятор не работает.

рони 07.03.2016 12:22

Stay_Strong,
нет кода == нет совета
Цитата:

Сообщение от Stay_Strong
(/\./g,','); // создаем переменную от значения, где запятую меняем на точку

как раз наоборот у вас.
делайте макет полностью, но минимально

Stay_Strong 07.03.2016 13:17

рони,
вот полный минималистичный код, который не работает на данный момент:
function calculate() {
var room_length_nan = document.getElementById('room_length').value,
    room_length = room_length_nan.value.replace(/\,/g,'.');

room_length_nan.value = room_length;
document.getElementById('room_length').textContent = room_length;

var room_width_nan = document.getElementById('room_width').value,
    room_width = room_width_nan.value.replace(/\,/g,'.');

room_width_nan.value = room_length;
document.getElementById('room_width').textContent = room_length;

var area = room_length * room_width,
     price_ceiling_m = 299,
     price_new = area * price_ceiling_m;

document.getElementById('price_new').textContent = price_new + " руб."; 
}


Не считает. В консоле пишет:
Uncaught TypeError: Cannot read property 'replace' of undefined

И не подменяет в инпуте ничего

рони 07.03.2016 13:50

Stay_Strong,
html ?

Stay_Strong 07.03.2016 13:58

рони,
Возможно так будет проще: http://sdelai-potolok.ru/
Прям сразу весь калькулятор. Я просто весь код целиком не писал. Потому что там много полей.

рони 07.03.2016 14:01

Stay_Strong,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>

  <script>
   function calculate() {
var room_length_nan = document.getElementById('room_length'),
    room_length = room_length_nan.value.replace(/\,/g,'.');

room_length_nan.value = room_length;


var room_width_nan = document.getElementById('room_width'),
    room_width = room_width_nan.value.replace(/\,/g,'.');

room_width_nan.value = room_width;


var area = room_length * room_width,
     price_ceiling_m = 299,
     price_new = area * price_ceiling_m;

document.getElementById('price_new').value = price_new.toFixed(2) + " руб.";
}

  </script>
</head>

<body>
 <form action="http://">
 <input id="room_length" name="">
 <input id="room_width" name="">
 <input id="price_new" name="" readonly="readonly">
 <input name="" type="button" value="calculate"  onclick="calculate()">
 </form>
</body>

</html>


Часовой пояс GMT +3, время: 13:50.