首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >simpleCart(js)选择选项验证

simpleCart(js)选择选项验证
EN

Stack Overflow用户
提问于 2012-03-21 08:40:06
回答 1查看 727关注 0票数 1

尝试在添加到购物车按钮上设置一些验证,以便在我的wordpress站点上的simplecart货架项目上的尺寸和颜色的下拉选择。我可以让警报弹出并阻止添加项目,但这是错误的,因为即使选择了正确的值,警报也会弹出。我已经搜索了几天了,发现有几个人问了同样的问题,但没有回应,所以任何关于如何以及是否可能实现这一点的输入都将是令人惊讶的。

下面是add to cart功能:

代码语言:javascript
复制
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();

我尝试实现的代码如下:

代码语言:javascript
复制
if( item_Size = "none" ){
        alert("Please select a size");
        return;
    }


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

现在,当涉及到这些东西时,我是个新手,所以我甚至不确定它的值存储在哪里,所以它可能是任何设置变量的名称,代码可能是完全错误的,但没有一个是默认选择选项的值。

下面是它加载和保存cookie的方式:

代码语言:javascript
复制
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存储变量的方式,我在使用任何用于post验证的方法时都遇到了问题。请帮帮我!!

感谢您的时间和努力。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-21 08:55:01

在您试图实现的代码中,您将"none“的值赋给变量"item_size”。由于这将是真的,弹出窗口将会显示。您希望在执行比较时使用两个"=“。

你的代码:

代码语言:javascript
复制
if( item_Size = "none" )

已修复:

代码语言:javascript
复制
if( item_Size == "none" )

乍一看,这应该解决了问题。祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9797093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档