При изменении моего выпадающего списка выберите опцию сбросить другую.
Я создал динамический калькулятор на своем сайте wordpress, но когда я изменяю значение из выпадающего списка, он сбрасывает другие значения.
Мой код сценария выглядит следующим образом.
Что я уже пробовал:
(function ($) { update_amounts(); $('.package').change(function() { update_amounts(); $('#myTable > tbody > tr > td.numbers-row ').each(function() { $(this).find("input").val(); //$(this).find("input").val(1); //val(1) is ued to reset the qty buttons }); }); //reset all options $("#reset").on("click", function () { $('#package_id option').prop('selected', function() { return this.defaultSelected; }); update_amounts(); $('#myTable > tbody > tr > td.numbers-row ').each(function() { $(this).find("input").val(1); }); }); function update_amounts() { var sum = 0.0; $('#myTable > tbody > tr').each(function() { var package; // var qty = $(this).find('option:selected').val(); var price = $(this).find('.price').val(); if ($(this).find('#package_id').length){ package = $(this).find('option:selected').val(); if(package=="" || package=="none" ){ package = $(this).find('.price').val(); } } else{ package = $(this).find('.price').val(); } sum += parseInt(package); $(this).find('.price').val(package); $(this).find('.amount').text(''+package); }); //just update the total to sum $('.total').text(sum); } }) (jQuery); (function ($) { $( "<div class='inc button'>+</div>" ).insertAfter( ".numbers-row input#french-hens" ); $( "<div class='dec button'>-</div>" ).insertBefore( ".numbers-row input#french-hens" ); //$(".numbers-row").append('<div class="dec button">-</div>'); function calcProdSubTotal() { var sum=0; $('#myTable > tbody > tr').each(function() { var package; // var qty = $(this).find('option:selected').val(); package = $(this).find('.amount').text(); sum += parseInt(package); //alert(sum); //$(this).find('.amount').text(''+package); }); $('.total').text(sum); // $("#product-subtotal").val(CommaFormatted(prodSubTotal)); } $(".button").on("click", function() { var $button = $(this); var sum=0;var product_val; var oldValue = $button.parent().find("input").val(); var total_amt = $button.parent().parent() .find("td .price") .val(); //alert(total_amt); if ($button.text() == "+") { var newVal = parseFloat(oldValue) + 1; total_cal= newVal * total_amt; product_val=$button.parent().parent() .find("td span") .text(total_cal); } else { // Don't allow decrementing below zero if (oldValue > 0) { var newVal = parseFloat(oldValue) - 1; total_cal= newVal * total_amt; product_val=$button.parent().parent() .find("td span") .text(total_cal); } else { newVal = 0; } } var calculate= $button.parent().find("input").val(newVal); calcProdSubTotal(); }); }) (jQuery);
F-ES Sitecore
Без знания наценки помочь невозможно. И это не было просьбой к вам сбросить 1000 строк HTML тоже. Вам нужно научиться отлаживать свой код, устанавливать точки останова и пошагово выполнять их в инструментах разработки браузера, чтобы получить представление о том, что происходит. Если вся форма сбрасывается, то первое, что я бы проверил, - это то, что вся страница не просто обновляется.
ZurdoDev
Просто отладьте свой код. Простой.