Нужна помощь в скрипте расчёта!
Всем доброго дня! Уважаемые, подскажите пожалуйста... На jquery не писал очень давно..
суть такова.. ни как не удается сделать корректный подсчет... например человек выбрал параметр в первом селекте, а во втором не выбрал. или наоборот - в первом не выбрал, а выбрал во втором.. или ничего не выбрал в селектах, но зато выбрал один или оба чекбоксов. Я написал много условий с конструкциями if,else. но понял, что только запутался!!:blink: , уверен, что есть более короткий вариант для подобных штук, но опыта не хватает., т.к. я пхп-шник. Помогите плиз. Иными словами здесь просто идет не большой подсчет и обновляет ценник в диве... Буду очень благодарен за помощь) есть 2 селекта такого вида <select id="size"> <option val="0">выберите</option> <option val="1000">1000</option> <option val="2000">2000</option> </select> <select id="col"> <option val="0">выберите</option> <option val="1">1 шт</option> <option val="2">2 шт</option> </select> и 2 чекбокса <input type="checkbox" id="yes" class="modCheckbox" name="yes" aria-invalid="false"> //если выбран, то к ценнику прибавить 500 <input type="checkbox" id="no" class="modCheckbox" name="no" aria-invalid="false"> //если выбран, то прибавить 1000 внизу div <div id="priceup">500</div> |
espltd,
:-? |
espltd, про селекты понятно - рубли множить на штуки...
А с чеками как быть? Если они про что-то одно yes/no так это вообще не чекбоксами нужно делать, а радиокнопками... Или одним чеком - выбран или нет... |
espltd, вот тебе макетик для начала... ;)
<!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <script src='https://code.jquery.com/jquery-latest.js'></script> <!-- <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> $(function(){ $('#size,#col,#yes,#no').on('input',function(){ alert(1) }) }); </script> </head> <body> <select id="size"> <option value=""></option> <option value="1000">1000</option> <option value="2000">2000</option> </select> <select id="col"> <option value=""></option> <option value="1">1 шт</option> <option value="2">2 шт</option> <option value="3">3 шт</option> </select> <input type="checkbox" id="yes" class="modCheckbox" name="yes" aria-invalid="false"> <input type="checkbox" id="no" class="modCheckbox" name="no" aria-invalid="false"> </body> </html> |
не доходит(((((
я вот по такому принципу делал, это касается одного только чекбокса, очень громоздко все.... На самом деле понимаю, что оно должно работать не на куче условий по if, else, а скорее как-то взаимоисключать не выбранные элементы, а оставлять только выбранные... возможно ошибаюсь... подсчет не получатеся все равно... $('#count').on('click', function () { if ( $(this).is(':checked') ) { if( (resultSize || resultBorder) == 0 ){ $('#priceup').text( (priceDefault + 1800) ); } if(resultSize != 0){ $('#priceup').text( (priceDefault + size + 1800) ); } if(resultBorder != 0){ $('#priceup').text( (priceDefault + border + 1800) ); } if( (resultSize && resultBorder) != 0 ){ $('#priceup').text( (priceDefault + size + border + 1800) ); } } else { if( (resultSize || resultBorder) == 0 ){ $('#priceup').text( priceDefault ); } if(resultSize != 0){ $('#priceup').text( (priceDefault + size) ); } if(resultBorder != 0){ $('#priceup').text( (priceDefault + border) ); } if( (resultSize && resultBorder) != 0 ){ $('#priceup').text( (priceDefault + size + border) ); } if( (resultSize != 0) && (resultBorder == 0) ){ $('#priceup').text( (priceDefault + size - border) ); } } }); |
espltd, определите значения флажкам соответственно 1800 и 0, и просто складывайте с выбранным, без всяких условий.
|
Часовой пояс GMT +3, время: 11:06. |