Search code examples
selectinternet-explorer-8simplecart

SimplecartJs - Select size doesn't works with ie 8


I am facing compatibility trouble with Internet Explorer 8 using SimplecartJS:

I have a select to choice size: (shop.php)

<select class="item_Size">
    <option value="15 x 10 cm">15 x 10 cm - 2€</option>
    <option value="15 x 21 cm">15 x 21 cm - 3€</option>
    <option value="21 x 29,7 cm">21 x 29,7 cm - 5€</option>
    <option value="21 x 29,7 cm encadré">21 x 29,7 cm encadré - 20€</option>
</select>

And a little JS Script to set price about the size: (script.js)

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

It works perfectly in Firefox, Safari, etc, but not in ie 8 (Not tested in ie 7).

I already try without simple quotes around item.price value in JS script (item.price( 20 );) but nothing change.

Does someone have an idea to help me fix this ?


Solution

  • Ok folks, i did it ! I don't know if syntax is correct and i think it could be minimize but it works in IE 8. I hope it helps someone:

    if ( $.browser.msie )
    {
        $('.item_add').click(function()
        {
            var id_du_select_photo_ie = this.id;
            var selecteur = 'selec' + id_du_select_photo_ie;
            var selectionne = ' option:selected';
            var valeur_select_photo_ie = $('#selec' + id_du_select_photo_ie + selectionne).val();       
            simpleCart.bind("beforeAdd", function(item)
            {
                if(valeur_select_photo_ie == "15 x 10 cm")
                {
                    item.price(2);
                    item.set( "size" , valeur_select_photo_ie );
                }
                else if(valeur_select_photo_ie == "15 x 21 cm")
                {
                    item.price(3);
                    item.set( "size" , valeur_select_photo_ie );
                }
                else if(valeur_select_photo_ie == "21 x 29,7 cm")
                {
                    item.price(5);
                    item.set( "size" , valeur_select_photo_ie );
                }
                else if(valeur_select_photo_ie == "21 x 29,7 cm encadré")
                {
                    item.price(20);
                    item.set( "size" , valeur_select_photo_ie );
                }
            });
        });
    }
    
    if ( !$.browser.msie )
    {
        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);
            }
        });
    }
    

    ;-)