30.06.2015, 10:20
|
Новичок на форуме
|
|
Регистрация: 30.06.2015
Сообщений: 9
|
|
Скрипт подсчета суммы по выборке, нужна помощь
Здравствуйте. Очень нужна ваша помощь... Есть скрипт подсчета суммы по выборке (ввод числа input text и чекбокс) - http://pastebin.com/i1X7xugT . Помогите пожалуйста сделать так, чтобы работала выборка по option value и чтобы можно было бы указать % в чекбокс, допустим я ставлю чекбокс - 25% и от суммы ранних просчетов по форме была скидка в размере - 25%...Заранее спасибо за помощь!
|
|
30.06.2015, 12:38
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,131
|
|
usebest,
попробуйте более подробно описать что и как вы хотите суммировать и где в вашем коде 25%?
|
|
30.06.2015, 12:51
|
Новичок на форуме
|
|
Регистрация: 30.06.2015
Сообщений: 9
|
|
Сейчас скрипт подсчитывает числа в один 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, 30.06.2015 в 12:53.
|
|
30.06.2015, 13:33
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,131
|
|
usebest,
уже лучше, но где в селекте - 10?
Сообщение от usebest
|
Я выбрал из селекта значения - 10
|
и где второй селект ?
Сообщение от usebest
|
потом выбрал второй селект
|
|
|
30.06.2015, 13:41
|
Новичок на форуме
|
|
Регистрация: 30.06.2015
Сообщений: 9
|
|
Вот я изменил структуру формы с необходимыми селектами и чекбоксами http://pastebin.com/EHR2pc7Z
|
|
30.06.2015, 13:42
|
Новичок на форуме
|
|
Регистрация: 30.06.2015
Сообщений: 9
|
|
Сообщение от рони
|
usebest,
уже лучше, но где в селекте - 10?
и где второй селект ?
|
Я не говорил конкретно в селекте - 10, я говорил за значение которое в option value="число" , а 10 взял за пример
|
|
30.06.2015, 13:49
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,131
|
|
usebest,
и что теперь с чем складывать?
|
|
30.06.2015, 13:50
|
Новичок на форуме
|
|
Регистрация: 30.06.2015
Сообщений: 9
|
|
Алгоритм просчета с % по чекбоксу я уже сделал, осталось мне непонятно как сделать чтобы бралось значение из селекта и суммировались с остальными, к type=text сделано так -
if ((type == "text")) {
sum += parseInt($(this).val(), 10) || 0;
}
, а как сделать так же для селекта? пробовал вот так
if (el.attr("selected")) {
sum += parseInt($(this).val(), 10) || 0;
}
но не работает...Помогите пожалуйста
|
|
30.06.2015, 13:54
|
Новичок на форуме
|
|
Регистрация: 30.06.2015
Сообщений: 9
|
|
Вот https://jsfiddle.net/Qt3cf/100/ как сейчас у меня вышло, 2 поля с вводом чисел, и чекбокс %, все работает кроме селекта, когда выбираю допустим 1 упаковка, то число из option value не суммируется с остальными...Помогите решить пожалуйста
|
|
30.06.2015, 14:08
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,131
|
|
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>
Последний раз редактировалось рони, 30.06.2015 в 15:17.
|
|
|
|