试图在wordpress网站上的"添加到购物车"按钮上为我的simplecart货架项目的尺寸和颜色下拉选择设置一些验证。我可以让警报弹出并阻止添加项目,但这是错误的,因为即使选择了正确的值,警报也会弹出。我已经搜索了好几天了,发现有几个人问了同样的问题,但没有得到回应,所以任何关于如何以及是否可能做到这一点的信息都将是惊人的。
这是添加到购物车的功能:
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;
}
现在,当涉及到这些东西时,我是一个傻瓜,所以我甚至不确定它将值存储在哪里,所以它可能是任何设置变量名,代码可能完全错误,但没有一个是默认选择选项的值。
这就是它加载和保存cookie的方式:
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存储变量的方式,在使用任何用于后验证的技术时都遇到了困难。请帮忙!!
感谢您的时间和努力。
在您试图实现的代码中,您将值"none"分配给变量"item_size"。由于这将是真的,弹出窗口将显示。执行比较时,您希望使用两个"="。
您的代码:
if( item_Size = "none" )
已修复:
if( item_Size == "none" )
乍一看,这应该能解决问题。祝你好运