Проверка поля почтового индекса на странице оформления заказа в magento 2
Я пытаюсь применить проверку для почтового индекса при оформлении заказа, например, 4 цифры и 2 символа (A-Z), например: "9999AA".
Теперь по умолчанию, если я нажимаю неверный почтовый индекс на странице оформления заказа, я получаю сообщение, похожее на снимок экрана ниже: Но даже если я не изменю почтовый индекс, я нажму "Далее" и завершу свой заказ.
Кто-нибудь знает, как решить эту проблему?
Я нашел эту ссылку для проверки javascript в magento 2 валидатор magento2 но я не знаю, где я могу применить эту проверку validate-zip-international
, а затем изменить эту базу правил проверки в моем формате.
Или есть другой способ создать правило проверки почтового индекса?
3 answers
Чтобы добавить проверку в поле zip, мы должны перезаписать Magento_Checkout/layout/checkout_index_index.xml
и добавить этот код:
<item name="validation" xsi:type="array">
<item name="validate-zip-us" xsi:type="string">true</item>
</item>
Вот так
<item name="postcode" xsi:type="array">
<item name="sortOrder" xsi:type="string">75</item>
<!-- post-code field has custom UI component -->
<item name="component" xsi:type="string">Magento_Ui/js/form/element/post-code</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="string">true</item>
<item name="validate-zip-us" xsi:type="string">true</item>
</item>
</item>
zip-range
например, это уже определенное правило в rules.js
.
Мы можем перезаписать это правило или создать другое правило в соответствии с нашими потребностями в этом месте:Theme\Theme\Magento_Ui\web\js\lib\validation\rules.js
>
Я не думаю, что перезапись rules.js
является ответом на этот вопрос. Это делает свою работу, но кажется очень грязным.
Размещение чего-либо в папке темы делает наше расширение сильно зависящим от этого файла.
Хотя там мы могли бы поспорить об этом. Я предлагаю более независимое и независимое решение для проверки форм, созданных компонентами пользовательского интерфейса.
Мой ответ можно найти здесь: Проверка элементов формы, построенных с помощью компонентов пользовательского интерфейса
Если вы также хотите отключить показанное предупреждающее сообщение вы можете проверить мой ответ здесь: Как отключить Уведомление о проверке почтового индекса/почтового индекса Magento 2