Помогите с 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, время: 12:17. |