我想阻止客户将邮政信箱输入到所选运输方式的收货地址(本例中为 UPS)。我可以覆盖 js/prototype/validation.js
插入新的验证模式,但我不想 fork 这样的 key 文件。
在客户通过 Javascript 选择送货方式后,是否有一种机制可以在不覆盖核心文件的情况下不显眼地验证客户的送货地址?
我看到 Validation.add
在 validation.js
中使用,那么是否可以在核心文件之外添加新的验证方法?
我要应用的正则表达式是
\b([P|p](OST|ost)?\.?\s?[O|o|0](ffice|FFICE)?\.?\s)?([B|b][O|o|0][X|x])\s(\d+)
如果无法在 JS 中优雅地执行验证,我会对 controller_action_predispatch_onepage_saveShippingMethod
上的观察者感兴趣检查数据并在必要时执行 Ajax 重定向回送货地址表单。
最佳答案
使用的库是Really Easy Field Validation该页面确实解释了如何扩展它。我猜你需要这样的东西:
Validation.add('address', 'Error message text', {
pattern : /\b([P|p](OST|ost)?\.?\s?[O|o|0](ffice|FFICE)?\.?\s)?([B|b][O|o|0][X|x])\s(\d+)/
});
关于ajax - 如何在 Magento 结账时不显眼地添加新的验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393337/