ajax - 如何在 Magento 结账时不显眼地添加新的验证方法

标签 ajax validation magento shipping unobtrusive

我想阻止客户将邮政信箱输入到所选运输方式的收货地址(本例中为 UPS)。我可以覆盖 js/prototype/validation.js插入新的验证模式,但我不想 fork 这样的 key 文件。

在客户通过 Javascript 选择送货方式后,是否有一种机制可以在不覆盖核心文件的情况下不显眼地验证客户的送货地址?

我看到 Validation.addvalidation.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/

相关文章:

magento - 如何停止 Magento 需要两个产品描述?

ajax - ajax 页面的永久链接最佳实践

javascript - 如何使用 Javascript 验证带有小时和分钟的输入文本

javascript - AJAX:检查字符串是否为 JSON?

php - 是否应使用使用 DNS/MX 记录的电子邮件验证?

Magento 管理员创建订单需要跳过选择商店

Magento 将 1.7 升级到 1.8 + 单页结帐问题

php - 访问另一页面后保留浏览器滚动位置

ajax - Selenium WebDriver-确定元素是否可单击(即,不会被dojo模态灯箱遮盖)

php - AJAX 登录在 Internet Explorer 中不起作用