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 Webサイトに表示):

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' );
    }
});

しかし、それはつまり8では機能しません。誰かが理由を知っているなら?

于 2013-01-08T14:59:19.197 に答える