0

我正在尝试让 simplecart 为选择框中选择的每个尺寸图像设置价格。我为每个要出售的图像设置了选择框,如下所示:

<img class="item_image" src='my.jpg' height='50' width='50' alt="Mine"/>
<span class="item_name">My image</span>

<select class="item_size" >
<option value="5 x 7" data-price="5.00">5 x 7 - <span>$ 5.00</span></option>
<option value="8 x 10" data-price="10.00">8 x 10 - <span >$ 10.00</span></option>
<option value="16 x 20" data-price="20.00">16 x 20 - <span>$ 20.00</span</option>
</select>
<input type="text" class="item_quantity"  title="Item Quantity" value="1"/>

当为每个项目选择选择选项值时,我正在尝试使用 data-price 属性设置价格:

 simpleCart.bind( 'beforeAdd' , function( item ){

$('select').each(function(){ 
  var selected = $(this).find('option:selected');
    var extra = selected.data('price'); 
     item.price(extra);
  });
  });

我是一个菜鸟,所以我不太会让它工作。我可以获得要设置的第一个图像价格,但不能在其他选择框中。我可以为每个选择框使用单独的 ID,但也不确定如何执行此操作。任何帮助,将不胜感激!

4

2 回答 2

0

您可以有一个单独的item_price字段,在更改选择框时更新。

<img class="item_image" src='my.jpg' height='50' width='50' alt="Mine"/>
<span class="item_name">My image</span>

<select class="item_size">
<option value="5 x 7" data-price="5.00">5 x 7 - <span>$ 5.00</span></option>
<option value="8 x 10" data-price="10.00">8 x 10 - <span >$ 10.00</span></option>
<option value="16 x 20" data-price="20.00">16 x 20 - <span>$ 20.00</span</option>
</select>
<!-- new input --><input type="text" class="item_price" value="5.00"/>
<input type="text" class="item_quantity"  title="Item Quantity" value="1"/>

然后,您可以在 JS 中执行此操作

$('.item_size').on('change', function(){

    var $this = $(this),
        selected = $this.find(':selected').data('price')

    $this.siblings('.item_price').val(selected);

});

http://jsfiddle.net/Kvkh5/上的工作示例

不要忘记将该新字段更改为“隐藏”字段,我将其设为文本字段仅用于演示目的。

于 2013-05-08T13:47:09.737 回答
-1

您可以这样做(在 Simplecart 网站上显示):

simpleCart.bind( 'beforeAdd' , function( item )
{
    if( item.get( 'size' ) == '15 x 10 cm' )
    {
        item.price( '2' );
    }
    else if( item.get( 'size' ) == '15 x 21 cm' )
    {
        item.price( '3' );
    }
    else if( item.get( 'size' ) == '21 x 29,7 cm' )
    {
        item.price( '5' );
    }
    else if( item.get( 'size' ) == '21 x 29,7 cm encadré' )
    {
        item.price( '20' );
    }
});

但它不适用于 ie 8。如果有人知道为什么?

于 2013-01-08T14:59:19.197 回答