【发布时间】:2015-03-02 00:27:19
【问题描述】:
我的 Magento 商店中有可配置的产品,尺寸是必需的选项。当用户未选择尺寸并将产品添加到购物车时,页面会重新加载并显示错误消息“请指定产品选项”。
如果未选择所需选项,我想通过 jQuery 提示用户“这是必填字段”消息,并避免整个页面重新加载。
我该如何实现呢? 谢谢!
附:我启用了 ajax 添加到购物车。
【问题讨论】:
标签: jquery validation magento
我的 Magento 商店中有可配置的产品,尺寸是必需的选项。当用户未选择尺寸并将产品添加到购物车时,页面会重新加载并显示错误消息“请指定产品选项”。
如果未选择所需选项,我想通过 jQuery 提示用户“这是必填字段”消息,并避免整个页面重新加载。
我该如何实现呢? 谢谢!
附:我启用了 ajax 添加到购物车。
【问题讨论】:
标签: jquery validation magento
希望有帮助
我有两种方法。
添加 class="validate-select" 并编辑 js/prototype/validation.js 以自定义警报(默认为“请选择一个选项。”)
在configurable.phtml(模板/目录/产品/视图/类型/选项)内的选择框上添加一个onChange,如果选项为空则禁用按钮。
//last is used if there is more than 1 option, when you change the first option, you have to select the second option.
function changeBox(value,last) {
if(last == "") {
jQuery('#buttonCart').attr('disabled','disabled');
}
if(value == "") {
jQuery('#buttonCart').attr('disabled','disabled');
} else {
if(last == "") {
jQuery('#buttonCart').attr('disabled','disabled');
} else {
jQuery('#buttonCart').removeAttr('disabled');
}
}
}
<select id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry" onchange="changeBox(this.value,'<?php if ($_attribute->decoratedIsLast){?>last<?php } else { echo ""; }?>')">
<option><?php echo $this->__('Select '.$_attribute->getLabel()) ?></option>
</select>
并且不要忘记在添加到购物车按钮中提供 id id="buttonCart"
【讨论】:
您可以使用 jQuery 进行客户端验证。将类提供给下拉列表和按钮单击事件(即单击“添加到购物车”)。您可以使用该下拉列表的简单验证。
你可以使用这样的东西
jQuery(function($) {
$('#addtocart').on('click',function(e) {
if ($('.myDropdown').val() == '') {
e.preventDefault();
alert("Please select anyone");
}
});
});
这里 #addtocart 是您添加到购物车按钮的 ID(可能因您而异),而 .myDropdown 是您将提供给下拉列表的类。
希望您对要做什么有所了解。这可能不是确切的代码,但这以某种方式为您提供了进一步进行的概述。
希望这会有所帮助。
【讨论】: