simpleCart (js) Выбор варианта проверки - PullRequest
1 голос
/ 21 марта 2012

Попытка настроить некоторую проверку для кнопки «Добавить в корзину» для выбора выпадающего списка для размера и цвета на полках моей простой тележки на моем WordPress-сайте. Я могу получить предупреждение, чтобы выскочить и заблокировать добавление элемента, но это неправильно, потому что предупреждение появляется даже при выбранных правильных значениях. Я искал это уже несколько дней и нашел пару человек, которые задают один и тот же вопрос без ответа, поэтому любая информация о том, как и если это возможно, будет удивительной.

Вот функция добавления в корзину:

me.add = function () {
    var me=this;
    /* load cart values if not already loaded */
    if( !me.pageIsReady     ) { 
        me.initializeView(); 
        me.update();    
    }
    if( !me.isLoaded        ) { 
        me.load(); 
        me.update();    
    }

    var newItem = new CartItem();

    /* check to ensure arguments have been passed in */
    if( !arguments || arguments.length === 0 ){
        error( 'No values passed for item.');
        return;
    }
    var argumentArray = arguments;
    if( arguments[0] && typeof( arguments[0] ) != 'string' && typeof( arguments[0] ) != 'number'  ){ 
        argumentArray = arguments[0]; 
    } 

    newItem.parseValuesFromArray( argumentArray );
    newItem.checkQuantityAndPrice();

Код, который я пытаюсь реализовать:

if( item_Size = "none" ){
        alert("Please select a size");
        return;
    }


if( item_Color = "none" ){
        alert("Please select a color");
        return;
    }

Теперь я новичок, когда дело доходит до этого, так что я даже не уверен, где он хранит значения, так что это может быть любое имя переменной настройки, а код может быть совершенно неправильным, но ни одно из них не является значением опции выбора по умолчанию.

Вот как он загружает и сохраняет куки:

me.load = function () {
    var me = this;
    /* initialize variables and items array */
    me.items = {};
    me.total = 0.00;
    me.quantity = 0;

    /* retrieve item data from cookie */
    if( readCookie('simpleCart') ){
        var data = unescape(readCookie('simpleCart')).split('++');
        for(var x=0, xlen=data.length;x<xlen;x++){

            var info = data[x].split('||');
            var newItem = new CartItem();

            if( newItem.parseValuesFromArray( info ) ){
                newItem.checkQuantityAndPrice();
                /* store the new item in the cart */
                me.items[newItem.id] = newItem;
            }
        }
    }
    me.isLoaded = true;
};



/* save cart to cookie */
me.save = function () {
    var dataString = "";
    for( var item in this.items ){
        dataString = dataString + "++" + this.items[item].print();
    }
    createCookie('simpleCart', dataString.substring( 2 ), 30 );
};

Полный код simpleCart можно найти здесь: simplecartjs.com

Любая помощь будет принята с благодарностью, я пробовал другие методы проверки формы, но у меня возникли проблемы с использованием чего-либо, предназначенного для проверки после, из-за того, что simplecart хранит переменные. ПОЖАЛУЙСТА, ПОМОГИТЕ !!

Спасибо за ваше время и усилия.

1 Ответ

1 голос
/ 21 марта 2012

В коде, который вы пытаетесь реализовать, вы присваиваете значение none для переменной item_size. Так как это будет правдой, всплывающее окно покажет. Вы хотите использовать два "=" при выполнении сравнения.

Ваш код:

if( item_Size = "none" )

Исправлено:

if( item_Size == "none" )

На первый взгляд это должно решить проблему. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...