Magento:如何在需要选项验证失败时阻止页面加载?

时间:2015-03-02 00:27:19

标签: jquery validation magento

我的Magento商店有可配置的产品,尺寸是必需的选项。当用户未选择尺寸并将产品添加到购物车时,页面将重新加载并显示错误消息“请指定产品选项”。

如果未选择所需的选项,我想通过jQuery向用户提示“这是必填字段”消息并避免整个页面重新加载。

我该如何实现? 谢谢!

P.S。我启用了ajax add-to-cart。

2 个答案:

答案 0 :(得分:0)

希望这个帮助

我有2种方法。

  1. 添加class="validate-select"并编辑js / prototype / validation.js以进行自定义提醒(默认为“请选择一个选项。”)

  2. 在configurable.phtml(template / catalog / product / view / type / options)内的选择框中添加onChange,如果该选项为null,则禁用该按钮。

  3. //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="buttonCart"

    中提供ID

答案 1 :(得分:0)

您可以使用jQuery进行客户端验证。将类提供给下拉列表和按钮单击事件(即单击“添加到购物车”)。您可以使用该下拉菜单的简单验证。

你可以使用这样的东西

jQuery(function($) {
    $('#addtocart').on('click',function(e) {
        if ($('.myDropdown').val() == '') {
            e.preventDefault();
            alert("Please select anyone");
        }
    });
});

此处 #addtocart 是您添加到购物车按钮的ID(可能因您而异), .myDropdown 是您将为您的下拉菜单提供的课程。

希望您对如何操作有所了解。这可能不是确切的代码,但这会以某种方式为您提供进一步的概述。

希望这会有所帮助。