Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2016, 21:32
Аспирант
Отправить личное сообщение для PonyS Посмотреть профиль Найти все сообщения от PonyS
 
Регистрация: 19.04.2016
Сообщений: 55

Прошу помощи по скрипту подсчета
Здравствуйте! Нашел скрипт на форуме подсчета из полей и не могу подкорректировать его, а именно, вот скрипт:
<script>


$(function() {
var calc = function() {
var sum = 0;
$(".s2,.text2,.sum[type='text'],.sum:checked", fields).each(function() {
sum += +this.value||0
});
var sale = 0;
$(".sale:checked", fields).each(function() {
sale += +this.value
});
var sales = 0;
$(".sdg", fields).each(function() {
sales += +this.value
});
$("#text").val((sum - sum * sale / 100).toFixed(2))


};
fields = $("form");

fields.on('input change',calc)
});

</script>

В код я добавил поиск по полю с классом sdg по аналогу как с скрипте, и теперь мне нужно чтобы в подсчете участвовало и поле sdg с другим именем sales , но чтобы оно не добавлялось в + как остальные, а умножало при выборе. Пробовал менять вот на такое $("#text").val((sum - sum * sale * sales / 100).toFixed(2)) но оно считает только после выбора sum и т.д, а не сразу и без привязки выбора, то бишь захотел выбрать sum поля - выбрано и подсчиталось, добавил в инпут sdg еще 2 и все что ранее я выбрал умножилось на значение из поля sdg . Заранее спасибо за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2016, 12:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

PonyS,
Хотелось бы увидеть пример html , по которому проводится расчет
Ответить с цитированием
  #3 (permalink)  
Старый 20.04.2016, 19:43
Аспирант
Отправить личное сообщение для PonyS Посмотреть профиль Найти все сообщения от PonyS
 
Регистрация: 19.04.2016
Сообщений: 55

<form action="" method="POST" id="form" style="">
<select name="s2" class="s2" >
<option value="0" selected="selected">How many?</option>
<option value="90">90$</option>
<option value="95">95$</option>
<option value="120">120$</option>
<option value="150">150$</option>
<option value="180">180$</option>
</select>
<select name="text2" class="text2">
<option value="0" selected="selected">How many?</option>
<option value="0">0$</option>
<option value="25">25$</option>
<option value="50">50$</option>
<option value="75">75$</option>
<option value="100">100$</option>
</select>
<select name="text22" class="text2">
<option value="0" selected="selected">Number</option>
<option value="1">1m</option>
<option value="2">2m</option>
<option value="3">3m</option>
<option value="4">4m</option>
<option value="5">5m</option>
<option value="6">6m</option>
</select>

3 селекта сейчас суммируется, а вот 4-й class="sdg" должен умножаться что выбрали до этого на число в value(3,4,5,6 и т.д по выбору)

<select name="sdg" class="sdg">
<option value="0" selected="selected">Duration</option>
<option value="3">3h</option>
<option value="4">4h</option>
<option value="5">5h</option>
<option value="6">6h</option>
<option value="7">7h</option>
</select>
Расчет - <input type="text" value="0.00" id="text">
</form>
Ответить с цитированием
  #4 (permalink)  
Старый 20.04.2016, 19:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

PonyS,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #5 (permalink)  
Старый 20.04.2016, 20:24
Аспирант
Отправить личное сообщение для PonyS Посмотреть профиль Найти все сообщения от PonyS
 
Регистрация: 19.04.2016
Сообщений: 55

<script>


$(function() {
var calc = function() {
var sum = 0;
$(".s2,.text2,.sum[type='text'],.sum:checked", fields).each(function() {
sum += +this.value||0
});
var sale = 0;
$(".sale:checked", fields).each(function() {
sale += +this.value
});
var sales = 0;
$(".sdg", fields).each(function() {
sales += +this.value
});
$("#text").val((sum - sum * sale / 100).toFixed(2))


};
fields = $("form");

fields.on('input change',calc)
});

</script>


<form action="" method="POST" id="form" style="">
<select name="s2" class="s2" >
<option value="0" selected="selected">How many?</option>
<option value="90">90$</option>
<option value="95">95$</option>
<option value="120">120$</option>
<option value="150">150$</option>
<option value="180">180$</option>
</select>
<select name="text2" class="text2">
<option value="0" selected="selected">How many?</option>
<option value="0">0$</option>
<option value="25">25$</option>
<option value="50">50$</option>
<option value="75">75$</option>
<option value="100">100$</option>
</select>
<select name="text22" class="text2">
<option value="0" selected="selected">Number</option>
<option value="1">1m</option>
<option value="2">2m</option>
<option value="3">3m</option>
<option value="4">4m</option>
<option value="5">5m</option>
<option value="6">6m</option>
</select>

3 селекта сейчас суммируется, а вот 4-й class="sdg" должен умножаться что выбрали до этого на число в value(3,4,5,6 и т.д по выбору)

<select name="sdg" class="sdg">
<option value="0" selected="selected">Duration</option>
<option value="3">3h</option>
<option value="4">4h</option>
<option value="5">5h</option>
<option value="6">6h</option>
<option value="7">7h</option>
</select>
Расчет - <input type="text" value="0.00" id="text">
</form>
Ответить с цитированием
  #6 (permalink)  
Старый 21.04.2016, 12:26
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

PonyS,
Совсем не понял смысла этих расчетов, но как-то так...
<!DOCTYPE html>
<html>
<head>
    <title>Untitled Page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script>
        $(function () {
            var sales = 0;
            $(".sdg").change(function () {
                sales = this.value;
                calc();
            });
            var calc = function () {
                var sum = 0;
                $(".s2,.text2,.sum[type='text'],.sum:checked", fields).each(function () {
                    sum += +this.value || 0
                });
                var sale = 0;
                $(".sale:checked", fields).each(function () {
                    sale += +this.value
                });
 
                $("#text").val(sales * (sum - sum * sale / 100).toFixed(2))


            };
            fields = $("form");

            fields.on('input change', calc);
        });
    </script>
</head>
<body>
    <form action="" method="POST" id="form" style="">
    <select name="s2" class="s2">
        <option value="0" selected="selected">How many?</option>
        <option value="90">90$</option>
        <option value="95">95$</option>
        <option value="120">120$</option>
        <option value="150">150$</option>
        <option value="180">180$</option>
    </select>
    <select name="text2" class="text2">
        <option value="0" selected="selected">How many?</option>
        <option value="0">0$</option>
        <option value="25">25$</option>
        <option value="50">50$</option>
        <option value="75">75$</option>
        <option value="100">100$</option>
    </select>
    <select name="text22" class="text2">
        <option value="0" selected="selected">Number</option>
        <option value="1">1m</option>
        <option value="2">2m</option>
        <option value="3">3m</option>
        <option value="4">4m</option>
        <option value="5">5m</option>
        <option value="6">6m</option>
    </select>
    <select name="sdg" class="sdg">
        <option value="0" selected="selected">Duration</option>
        <option value="3">3h</option>
        <option value="4">4h</option>
        <option value="5">5h</option>
        <option value="6">6h</option>
        <option value="7">7h</option>
    </select>
    Расчет -
    <input type="text" value="0.00" id="text">
    </form>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 22.04.2016, 14:18
Аспирант
Отправить личное сообщение для PonyS Посмотреть профиль Найти все сообщения от PonyS
 
Регистрация: 19.04.2016
Сообщений: 55

Спасибо большое, единственный момент, как сделать чтобы считалось сразу?(как было в том коде начальном), то бишь тут у вас сейчас начинает считать если выбрать самый последний вариант sdg, можно ли сделать чтобы считалось сразу при любом выборе селекта? то бишь выбрали 1 и 2-й и подсчиталось сразу 2, если выбрали допольнительно sdg то+ умножилось как нужно, заранее спасибо
Ответить с цитированием
  #8 (permalink)  
Старый 22.04.2016, 16:26
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

PonyS,
У вас по умолчанию sdg 0(см. строку 8 и строку 61 в моем примере по вашему образцу) - потому и не считается - точнее, считается, но результат равен 0, поменяйте на 1 - будет считаться, простая арифметика.
Кстати, в вашем расчете не участвует переменная sale, т.к. нет элементов с таким классом
Ответить с цитированием
  #9 (permalink)  
Старый 23.04.2016, 15:25
Аспирант
Отправить личное сообщение для PonyS Посмотреть профиль Найти все сообщения от PonyS
 
Регистрация: 19.04.2016
Сообщений: 55

Сообщение от Dilettante_Pro Посмотреть сообщение
PonyS,
У вас по умолчанию sdg 0(см. строку 8 и строку 61 в моем примере по вашему образцу) - потому и не считается - точнее, считается, но результат равен 0, поменяйте на 1 - будет считаться, простая арифметика.
Кстати, в вашем расчете не участвует переменная sale, т.к. нет элементов с таким классом
Спасибо большое, все работает!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи с формой обратной связи markfostel jQuery 14 14.10.2015 00:29
прошу помощи с autocomplete uj query ramko AJAX и COMET 2 27.09.2013 20:35
Прошу помощи xavi AJAX и COMET 8 28.01.2013 10:36
Прошу помощи скриптеров или кого либо кто поможет :) f00rZik Общие вопросы Javascript 13 05.01.2012 03:42
Прошу помощи по скрипту mmslideshow nick0000 Общие вопросы Javascript 1 25.10.2010 14:36