2012-03-21 5 views
1

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

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

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

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

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

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

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

Ваш код:

if(item_Size = "none") 

Исправлено:

if(item_Size == "none") 

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

+0

Благодарим вас за это, добавив, что extra = остановил функцию от появления предупреждения, но теперь функция добавления в корзину вообще не работает, я попытался поместить инструкции if в разные места. добавьте функцию, а также функцию me.checkout без везения. Любой вход, на который должны идти эти строки кода, будет отличным. –

+0

@ user1282169 Похоже, что ваш код должен быть помещен в класс 'CartItem' внутри функции' checkQuantityAndPrice() '. – DondeEstaMiCulo

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