Member 11782676 Ответов: 0

При изменении моего выпадающего списка выберите опцию сбросить другую.


Я создал динамический калькулятор на своем сайте 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

Просто отладьте свой код. Простой.

0 Ответов