Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Калькулятор продуктов (https://javascript.ru/forum/misc/54142-kalkulyator-produktov.html)

Vital9 05.03.2015 23:32

Извините что голову морочу все заработало у меня jquery библиотека была старая.
Огромное вам спасибо за помощь очень благодарин.

Vital9 02.07.2015 23:01

Цитата:

Сообщение от laimas (Сообщение 359767)
Смысл идентификации в уникальности, а вашими check_soli и soli обеспечить это будет проблематично. Идентификатор в базе, это номер, и никаких гвоздей, и по этим номерам и должны идентифицироваться элементы формы на сервере, а у вас не идентификация, а каша.

Писать html вот так:

type = "text" name = "sahar" - это скармливать клиенту пустоту ничего незначащую.

$(function() {
    var e = $('form').find('input:text').keyup(function() {
         var a = [0,0,0];
         e.each(function() {
            if(n = this.value.replace(/\D/g,'')*1) {
                $(this.parentNode).find('span').each(function(i, e) {
                   var v = n * $(e).data('v');
                   $(e).text(v);
                   a[i+1] += v;
                })
                a[0] += n;
            }
         });
         $('#total').html('<span>' + a.join('</span> <span>') + '</span>')
    })
});

<form>
    <div><input type="text" name="salt" />В: <span data-v="2">a1</span> Н: <span data-v="4">a2</span></div>
    <div><input type="text" name="pepper" />В: <span data-v="32">b1</span> Н: <span data-v="1">b2</span></div>
    <div><input type="text" name="sugar" />В: <span data-v="12">c1</span> Н: <span data-v="3">c2</span></div>
</form>
<div id="total"></div>

salt - соль, pepper - перец, sugar - сахар.

Данные на которые надо умножать должен хранить элемент (data-v в примере), иначе сложно будет написать компактно. Как и что суммировать не понятно, и в какую колонку, поэтому смотрите пример и изменяйте под свое.

Добрый день подскажите как результат который вносится в id="total" округлить до 3-х знаков?

рони 02.07.2015 23:35

Vital9, строка 9
a[i+1] += +v.toFixed(3);

Vital9 03.07.2015 18:08

Вложений: 1
Цитата:

Сообщение от рони (Сообщение 377443)
Vital9, строка 9
a[i+1] += +v.toFixed(3);

Не работает вот картинка.
Может из за библиотеки? я использую jquery-1.8.min.js

Vital9 03.07.2015 18:24

Вложений: 1
Вот ещё 1 картинка.

kostyanet 03.07.2015 18:51

Вопрос: данные из базы?
Ответ: нет, данные будут в форме!
Диагноз: резать не дожидаясь перитонита.

Vital9 03.07.2015 19:10

Цитата:

Сообщение от kostyanet (Сообщение 377555)
Вопрос: данные из базы?
Ответ: нет, данные будут в форме!
Диагноз: резать не дожидаясь перитонита.

Да данные из базы. Получаю данные из базы и умножаем на число в инпуте, а потом суммируем.

Vital9 06.07.2015 10:20

Что не кто не может помочь?:help:

рони 06.07.2015 10:52

Vital9,
сделайте нормальный пример, чтоб можно было понять что у вас не округляется

рони 06.07.2015 11:06

Vital9,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
     .total{
       border: #FF0033 2px solid;
       display: inline-block;
     }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
  <script>
$(function() {
    var e = $('form').find('input:text').keyup(function() {
         var a = [0,0,0];
         e.each(function() {
            if(n = this.value.replace(/\D/g,'')*1) {
                $(this.parentNode).find('span').each(function(i, e) {
                   var v = n * $(e).data('v');
                   $(e).text(v);
                   a[i+1] += v;
                   a[i+1] = +a[i+1].toFixed(3)
                })
                a[0] += n;
            }
         });
         $('#total').html('<span>' + a.join('</span> <span>') + '</span>')
    })
});
  </script>
</head>

<body>



<form>
    <div><input type="text" name="salt" />В: <span data-v="2">a1</span> Н: <span data-v="4.89">a2</span></div>
    <div><input type="text" name="pepper" />В: <span data-v="32">b1</span> Н: <span data-v="1.789">b2</span></div>
    <div><input type="text" name="sugar" />В: <span data-v="12">c1</span> Н: <span data-v="3.098">c2</span></div>
</form>
<b class="total"><div id="total"></div> это id="total" тут всё округляется</b>


</body>
</html>


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