Помогите с output и знаком препинания в input
Вот форма, рабочая. Может быть слишком накрутил с решением, но я не профессионал и это мой первый код.
Проблема в следующем: - в output выдается не целое число, не могу его никак округлить; - в <input id="d" value="" placeholder="десятичные через точку"> если десятичные цифры писать через запятую выдается в итоге ошибка. Помогите, кто чем может.
<form onsubmit="return false;
"oninput="document.getElementById('rezultat').innerHTML
= parseFloat(document.getElementById('a').value)/10*parseFloat(document.getElementById('c').value)
+parseFloat(document.getElementById('a').value)*parseFloat(document.getElementById('c').value)
+parseFloat(document.getElementById('b').value)*parseFloat(document.getElementById('c').value)
+parseFloat(document.getElementById('d').value)*280
+parseFloat(document.getElementById('d').value)*70
+parseFloat(document.getElementById('a').value)/10*parseFloat(document.getElementById('c').value)/100
+parseFloat(document.getElementById('a').value)*parseFloat(document.getElementById('c').value)/100
+parseFloat(document.getElementById('b').value)*parseFloat(document.getElementById('c').value)/100
+parseFloat(document.getElementById('d').value)*280/100
+parseFloat(document.getElementById('d').value)*70/100
">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr><td>Цена в юанях</td><td><input id="a" type="number"></td></tr>
<tr><td>Доставка по Китаю</td><td><input id="b" value="0"></td></tr>
<tr><td>Курс юаня</td><td><input id="c" value="11"></td></tr>
<tr><td>Вес груза, в кг</td><td><input id="d" value="" placeholder="десятичные через точку"></td></tr>
<tr><td> <br> <i> <p align="center"> Стоимость с учетом комиссии и доставкой до Москвы </p> </i> <td> <br> <b> <font color="#31B404"> <output id="rezultat" ></output> р. </b> </td><td></td></tr> <!--вывод результата-->
</table>
</form> </br>
|
|
Подскажите неумехе, как его правильно вставить в код?
|
Оберните в Math.round или Math.floor результат.
Т.е
document.getElementById('rezultat').innerHTML = Math.round(...); // точки замените на parseFloat(document.getElementById('a').value) и.т.д
Насчет запятой <input type="text" oninput="this.value = this.value.replace(/,/, '.');"> |
<form onsubmit="return false;">
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr><td>Цена в юанях</td><td><input id="a" type="number"></td></tr>
<tr><td>Доставка по Китаю</td><td><input id="b" value="0"></td></tr>
<tr><td>Курс юаня</td><td><input id="c" value="11"></td></tr>
<tr><td>Вес груза, в кг</td><td><input id="d" value="" placeholder="десятичные через точку"></td></tr>
<tr><td> <br> <i> <p align="center"> Стоимость с учетом комиссии и доставкой до Москвы </p> </i> <td> <br> <b> <font color="#31B404"> <output id="rezultat" ></output> р. </b> </td><td></td></tr> <!--вывод результата-->
</table>
</form> </br>
<script>
document.querySelector('form').oninput = function() {
var rezultat = document.getElementById('rezultat'),
a = document.getElementById('a'),
b = document.getElementById('b'),
c = document.getElementById('c'),
d = document.getElementById('d');
a.value = a.value.replace(/,/, '.');
b.value = b.value.replace(/,/, '.');
c.value = c.value.replace(/,/, '.');
d.value = d.value.replace(/,/, '.');
a = parseFloat(a.value) || 0;
b = parseFloat(b.value) || 0;
c = parseFloat(c.value) || 0;
d = parseFloat(d.value) || 0;
rezultat.innerHTML = Math.round(a / 10 * c + a * c + b * c + d * 280 + d * 70 + a / 10 * c / 100 + a * c / 100 + b * c / 100 +d * 280 / 100 + d * 70 / 100);
}
</script>
|
Огромное спасибо!
Я даже и не думал что можно решить таким образом. Теперь буду изучать на этом примере новые функции, о которых даже не подозревал. Еще раз, СПАСИБО! |
По мере успешного внедрения скрипта разрастается и жадность, и запросы.
Как в этот скрипт вставить вторую формулу (a / 10 * c + a * c + b * c + d * 280 + a / 10 * c / 100 + a * c / 100 + b * c / 100 +d * 280 / 100) Чтобы <output id="rezultat" ></output> р. отображался отдельно? Допускал ошибки, пытаясь переделать скрипт по-разному - теряет работоспособность, видимо, упускаю какую-то команду((( |
Кто-нибудь подскажет?
|
| Часовой пояс GMT +3, время: 21:24. |