Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.10.2015, 22:23
Новичок на форуме
Отправить личное сообщение для Virusx2000 Посмотреть профиль Найти все сообщения от Virusx2000
 
Регистрация: 14.10.2015
Сообщений: 7

Помогите с 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>
Ответить с цитированием
  #2 (permalink)  
Старый 14.10.2015, 22:28
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

https://learn.javascript.ru/number#%...BD%D0%B8%D0%B5
Ответить с цитированием
  #3 (permalink)  
Старый 14.10.2015, 22:42
Новичок на форуме
Отправить личное сообщение для Virusx2000 Посмотреть профиль Найти все сообщения от Virusx2000
 
Регистрация: 14.10.2015
Сообщений: 7

Подскажите неумехе, как его правильно вставить в код?
Ответить с цитированием
  #4 (permalink)  
Старый 14.10.2015, 22:53
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Оберните в Math.round или Math.floor результат.
Т.е
document.getElementById('rezultat').innerHTML = Math.round(...); // точки замените на parseFloat(document.getElementById('a').value) и.т.д


Насчет запятой
<input type="text" oninput="this.value = this.value.replace(/,/, '.');">

Последний раз редактировалось Lemme, 14.10.2015 в 22:59.
Ответить с цитированием
  #5 (permalink)  
Старый 14.10.2015, 23:27
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

<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>

Последний раз редактировалось Lemme, 14.10.2015 в 23:31.
Ответить с цитированием
  #6 (permalink)  
Старый 15.10.2015, 09:27
Новичок на форуме
Отправить личное сообщение для Virusx2000 Посмотреть профиль Найти все сообщения от Virusx2000
 
Регистрация: 14.10.2015
Сообщений: 7

Огромное спасибо!
Я даже и не думал что можно решить таким образом. Теперь буду изучать на этом примере новые функции, о которых даже не подозревал.
Еще раз, СПАСИБО!
Ответить с цитированием
  #7 (permalink)  
Старый 19.10.2015, 16:02
Новичок на форуме
Отправить личное сообщение для Virusx2000 Посмотреть профиль Найти все сообщения от Virusx2000
 
Регистрация: 14.10.2015
Сообщений: 7

По мере успешного внедрения скрипта разрастается и жадность, и запросы.

Как в этот скрипт вставить вторую формулу

(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> р. отображался отдельно?

Допускал ошибки, пытаясь переделать скрипт по-разному - теряет работоспособность, видимо, упускаю какую-то команду(((
Ответить с цитированием
  #8 (permalink)  
Старый 26.10.2015, 11:44
Новичок на форуме
Отправить личное сообщение для Virusx2000 Посмотреть профиль Найти все сообщения от Virusx2000
 
Регистрация: 14.10.2015
Сообщений: 7

Кто-нибудь подскажет?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите подружить слайдер с input Alex57B Элементы интерфейса 17 19.10.2016 12:28
проверка input (пожалуйста, помогите) alma95 Общие вопросы Javascript 13 17.02.2015 14:26
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
помогите с колличеством символов в input ale19 Общие вопросы Javascript 4 20.04.2011 21:24
Помогите дописать скрипт. peektoseen Javascript под браузер 7 22.03.2011 00:15