在Magento CE2.4.5中,我为STREET字段添加了一个自定义验证。如果该字段同时包含文本和数字,则需要进行验证,因为许多客户忘记提交他们的门牌号:
'validate-housenumber': [
function (value) {
return utils.isEmptyNoTrim(value) || /^[A-Za-z]+[ ]+[0-9]/.test(value);
},
$.mage.__('Please enter a house number')
],
出于测试原因,我在中添加了此代码:
- Magento/用户界面/视图/基本/Web/js/库/验证/规则.js*
并在中添加了验证规则:
- checkout _索引_索引.xml*
<item name="validation" xsi:type="array">
<item name="validate-housenumber" xsi:type="string">true</item>
</item>
然而,当开始在字段中键入任何内容时,验证会立即发生。我需要以下解决方案之一:
**(a)**离开字段后出现验证消息(所需)
**(B)**点击按钮进入下一个结账步骤后,出现验证消息(就像未填写必填字段时发生的情况一样)
任何提示都是非常受欢迎的。谢谢你的帮助!
亚历克斯
1条答案
按热度按时间vhmi4jdf1#
最后我在另一个线程中找到了解决方案。感谢 Tailtiu:
https://magento.stackexchange.com/questions/278554/trigger-checkout-validation-only-on-change-event
使用这个解决方案,验证工作如预期。但是,出于测试原因,我将验证应用于 company 字段,而不是 street 字段:
这很好用,但是当应用到字段street.0而不是company字段时,出现了一个问题:在前端,街道字段不能再被访问。
**更新:**据我所知,街道字段不能通过xml访问。相反,它必须通过插件完成: