2013-10-15 5 views
0

Я пользуюсь Cart66, который не меняет цены на корзину, пока пользователь не просмотрит их корзину. Мне нужен способ изменить цену на текущий элемент, чтобы пользователь знал, что цена изменилась. Я решил, что это можно сделать с помощью jquery/js, но не могу понять, как это сделать.Изменить цену, используя выбранный вариант текста

Увеличение/уменьшение цены «cart66-price-value» на основе значения в «()» «опции выбора« cart66-select ».

<script class="cart66-select"> 
<option value="A">Coral</option> 
<option value="B">Passion Fruit (+5.00)</option> 
</script> 
<strong class="cart66-price-value">$24.00</strong> 
+0

Что вы пытались? Я бы сказал, что было бы намного проще поставить значение в поле значений. – Cfreak

+0

Значение - уникальное значение, которое Cart66 использует для отслеживания элемента. –

ответ

0
<select class="cart66-select"> 
    <option value="A" price="10">Coral</option> 
    <option value="B" price="5">Passion Fruit (+5.00)</option> 
</select> 
<strong class="cart66-price-value">$<span id="price">24.00</span></strong> 


<script type="text/javascript"> 
    jQuery(document).ready(function(){ 
     jQuery(".cart66-select").change(function(){ 
      var price = parseInt(jQuery(this).find(':selected').attr('price')).toFixed(2); 
      jQuery("#price").html(price); 
     }); 
    }); 
</script> 
+0

Используйте 'price.toFixed (2)', чтобы получить цену с двумя десятичными знаками – Raidri

+0

Это отлично работает и похоже на то, что у меня было. Однако Cart66 не позволяет добавлять пользовательские атрибуты. –

0

Может быть сделано с помощью JQuery да @Aaron. Посмотрите на example, который сделал

<select class="cart66-select"> 
    <option value="$24.00">Coral</option> 
    <option value="$29.00">Passion Fruit (+5.00)</option> 
</select> 
<strong class="cart66-price-value">$24.00</strong> 

var changePrice = function() 
{ 
    var select = $(".cart66-select"), 
     displayPrice = $(".cart66-price-value"); 

    select.change(function(){ 
     var selected = $(this).children("option:selected").val(); 
     displayPrice.text(selected); 
    }); 
} 

changePrice(); 
+0

Это прекрасно работает! Однако, поскольку я использую Cart66, атрибут value уже используется для отслеживания элемента с уникальным идентификатором. Мне нужен способ использовать «(+5.00)», чтобы увеличить цену. –

+0

Теперь я понимаю, в чем была настоящая проблема. В этом случае регулярное выражение решает! Попробуйте это http://jsfiddle.net/Ra4dY/2/ – marceloogeda

+0

Ты гений! Именно то, что я искал. Ура! –

Смежные вопросы