Magento的checkout onepage下单时的必选字段修改成可选字段

本文介绍如何在Magento中自定义表单验证规则,包括移除必填项和修改控制器中的验证逻辑。通过调整表单元素的class属性和控制器代码,可以灵活地改变表单字段的验证行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js/prototype/validation.js
Validation.addAllThese([
    ['validate-select', 'Please select an option.', function(v) {
                return ((v != "none") && (v != null) && (v.length != 0));
            }],

而validation框架实际上是通过表单的class来进行验证的。
class="required validate-alphanum" 是validation内建的校验规则名称。当执行new Validation('test', {immediate : true}),Field失去焦点或者执行表单提交动作时,该表单下的所有内建类校验名的校验规则将被触发。

所以,我们在进行校验的时候,只需要将表单元素的class里面的值去掉或者修改即可。

例如onepage中billing部分的State/Province 部分,如果是下拉框则必须要填写。
我们将这个部分的必选项改为可选项

/app/design/frontend/default/default/template/checkout/onepage/

billing.phtml
shipping.phtml

一:
将其中的:<span class="required">*</span>去掉
将region_id的class="validate-select"去掉

二:
修改控制器:
app/code/core/Mage/Customer/Model/Address/Abstract.php

/*
        if ($this->getCountryModel()->getRegionCollection()->getSize()
               && !Zend_Validate::is($this->getRegionId(), 'NotEmpty')) {
            $errors[] = $helper->__('Please enter state/province.');
        }
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值