Перебрать и сложить данные из select
Здравствуйте. Помогите сложить или вычти данные из select.
<h2>3450 грн.</h2> <div class="form-group required"> <label class="control-label" for="input-option227">Слово</label> <select name="option[227]" id="input-option227" class="form-control"> <option value="17">слово 1</option> <option value="18">слово 2(+200 грн.)</option> <option value="19">слово3(+300 грн.)</option> </select> </div> <div class="form-group required"> <label class="control-label" for="input-option227">Слово</label> <select name="option[227]" id="input-option227" class="form-control"> <option value="17">слово 1</option> <option value="18">слово 2(-150 грн.)</option> <option value="19">слово3(+300 грн.)</option> <option value="19">слово3(-300 грн.)</option> </select> </div> Нужно узнать стоит плюс или минус,что б знать что делать с числами. Ну и естественно сложить или вычитать ,и конечную сумму добавить к сумме в H2. С одним полем и сложением сделал как то сам.Но понадобилось сделать несколько полей выбора и в некоторых добавить вычитание. if($("select").is(".form-control")){ var strpriceval = $(".list-unstyled h2").text(); var strpricevale = strpriceval.slice(0,-5); $("select.form-control").change(function () { var stroptionval = ""; $("select.form-control option:selected").each(function(){ stroptionval += $( this ).text() + " "; }); if(stroptionval.lastIndexOf(")")>=0){ var pricepl = stroptionval.substring(stroptionval.lastIndexOf("(")+2,stroptionval.lastIndexOf(")")-5); var fu=Number(pricepl)+Number(strpricevale); $(".list-unstyled h2").text(fu+" грн."); }else { $(".list-unstyled h2").text(strpricevale+" грн."); } }).change(); } Это то,что смог придумать.Для одного поля |
<html> <head> </head> <body> </body> <h2>3450 грн.</h2> <div class="form-group required"> <label class="control-label" for="input-option227">Слово</label> <select name="option[227]" id="input-option227" class="form-control"> <option value="17">слово 1</option> <option value="18">слово 2(+200 грн.)</option> <option value="19">слово3(+300 грн.)</option> </select> </div> <div class="form-group required"> <label class="control-label" for="input-option227">Слово</label> <select name="option[227]" id="input-option227" class="form-control"> <option value="17">слово 1</option> <option value="18">слово 2(-150 грн.)</option> <option value="19">слово3(+300 грн.)</option> <option value="19">слово3(-300 грн.)</option> </select> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> var x = parseFloat($('h2').text()); $('.form-control').change(function(){ var sum = x; $('.form-control').find('option:selected').each(function(){ sum += parseFloat($(this).text().substr($(this).text().indexOf('(')+1))||0; }); $('h2').text(sum+' грн.'); }) </script> </html> Чтобы в дальнейшем не возникало гемора, цифры которые складывать лучше хранить в value или data атрибуте отдельно, а не в тексте. id должны быть уникальные. |
Это движок так генерирует (((
|
j0hnik,
Спасибо огромное. |
Часовой пояс GMT +3, время: 11:08. |