Скрипт подсчета суммы по выборке, нужна помощь
Здравствуйте. Очень нужна ваша помощь... Есть скрипт подсчета суммы по выборке (ввод числа input text и чекбокс) - http://pastebin.com/i1X7xugT . Помогите пожалуйста сделать так, чтобы работала выборка по option value и чтобы можно было бы указать % в чекбокс, допустим я ставлю чекбокс - 25% и от суммы ранних просчетов по форме была скидка в размере - 25%...Заранее спасибо за помощь!
|
usebest,
попробуйте более подробно описать что и как вы хотите суммировать и где в вашем коде 25%? |
Сейчас скрипт подсчитывает числа в один input , допустим я ввожу в первое поле 10, в второе 15, и в инпуте id text идет подсчет и выводит 25. В этом скрипте подсчитывает только в полях type=text и checkbox, мне нужно чтобы работал так же подсчет по select , к примеру я выбираю из списка селекса какое-то значение и из value(option) число тоже подсчитывается вместе с остальными полями.
<select name="u1" class="chkOptions"> <option value="0" selected="selected">нет</option> <option value="120">1 упаковка</option> <option value="240">2 упаковки</option> <option value="300">3 упаковки</option> </select> По поводу % в чекбоксе, я имею ввиду вот в коде <input type="checkbox" id="chk2" value="10" class="sum" /> , value="10" и есть %, только нужно это кодом прописать чтобы алгоритм считал это не как число, а как % от остальных подсчетов, пример: Я выбрал из селекта значения - 10, и появилось первое число, потом выбрал второй селект - 25, и их значения по value просто суммируются и выходит в input id="text" = 35 , потом я ставлю галочку чекбокса 10, и от 35 идет пересчет на - 10%, то бишь алгоритм - 35-(35*10/100)=31,5(со скидкой 10%) |
usebest,
уже лучше, но где в селекте - 10? Цитата:
Цитата:
|
Вот я изменил структуру формы с необходимыми селектами и чекбоксами http://pastebin.com/EHR2pc7Z
|
Цитата:
|
usebest,
и что теперь с чем складывать? |
Алгоритм просчета с % по чекбоксу я уже сделал, осталось мне непонятно как сделать чтобы бралось значение из селекта и суммировались с остальными, к type=text сделано так -
if ((type == "text")) { sum += parseInt($(this).val(), 10) || 0; }, а как сделать так же для селекта? пробовал вот так if (el.attr("selected")) { sum += parseInt($(this).val(), 10) || 0; }но не работает...Помогите пожалуйста |
Вот https://jsfiddle.net/Qt3cf/100/ как сейчас у меня вышло, 2 поля с вводом чисел, и чекбокс %, все работает кроме селекта, когда выбираю допустим 1 упаковка, то число из option value не суммируется с остальными...Помогите решить пожалуйста
|
usebest,
вариант того как я вас понял <!DOCTYPE HTML> <html> <head> <title>Untitled</title><meta charset="utf-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> </head> <body> <form action="" method="POST"> <input type="text" name="text1" id="text1" class="sum" /><br /> <input type="text" name="text2" id="text2" class="sum" /> <br /> <select name="u1" class="chkOptions"> <option value="0" selected="selected">нет</option> <option value="120">1 упаковка</option> <option value="240">2 упаковки</option> <option value="300">3 упаковки</option> </select> <select name="u2" class="chkOptions2"> <option value="0" selected="selected">нет</option> <option value="121">4 упаковка</option> <option value="245">5 упаковки</option> <option value="302">6 упаковки</option> </select> <br /> <input type="checkbox" id="chk1" value="400" class="sum" /><label for="chk1">400</label> <br /> <input type="checkbox" id="chk2" value="100" class="sum" /><label for="chk2">100</label> <br /> <input type="checkbox" id="chk3" value="41" class="sale" /><label for="chk3">41%</label> <br /> <input type="checkbox" id="chk4" value="15" class="sale" /><label for="chk4">15%</label> <br /> <input type="checkbox" id="chk5" value="43" class="sale" /><label for="chk5">43%</label> <br /> <input type="checkbox" id="chk6" value="16" class="sale" /><label for="chk6">16%</label> <br /> Итого <input type="text" name="text" id="text"> </form> <script> $(function() { var calc = function() { var sum = 0; $("select,.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((sum - sum * sale / 100).toFixed(2)) }; fields = $("form"); fields.on('input change',calc) }); </script> </body> </html> |
Часовой пояс GMT +3, время: 21:53. |