0

following this post (Magento 2.2 Input field validation on Checkout page)

I can successfully add validation on the company field. But when I apply that to the region field, it doesn't work anymore. By "doesnt work" I mean that I get no validation message at all, I can write whatever I want in the region field and I get no red message.

What I need is to validate the region field so that the user can write only 2 characters. How can I do that?

What I did:

1. created checkout_index_index.xml in my theme under app/design/frontend/Theme/default/Magento_Checkout/layout
2. Add the code specified in the post mentioned above
3. substitute "company" with "region"

Final xml:

<?xml version="1.0"?>
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="checkout" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
 <body>
 <referenceBlock name="checkout.root">
 <arguments>
 <argument name="jsLayout" xsi:type="array">
 <item name="components" xsi:type="array">
 <item name="checkout" xsi:type="array">
 <item name="children" xsi:type="array">
 <item name="steps" xsi:type="array">
 <item name="children" xsi:type="array">
 <item name="shipping-step" xsi:type="array">
 <item name="children" xsi:type="array">
 <item name="shippingAddress" xsi:type="array">
 <item name="children" xsi:type="array">
 <!-- To affect the shipping address fields -->
 <item name="shipping-address-fieldset" xsi:type="array">
 <item name="children" xsi:type="array">
 <item name="region" xsi:type="array">
 <item name="validation" xsi:type="array">
 <item name="min_text_length" xsi:type="number">0</item>
 <item name="max_text_length" xsi:type="number">9</item>
 <item name="letters-only" xsi:type="boolean">true</item>
 <item name="required-entry" xsi:type="boolean">true</item>
 <item name="max-words" xsi:type="number">2</item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </item>
 </argument>
 </arguments>
 </referenceBlock>
</body>

As I said, If I change "region" with "company", it works perfectly. But I need to apply the validation to the region field. Any idea how to achieve this?

Thanks

Ronak Rathod
6,58020 silver badges46 bronze badges
asked Apr 2, 2019 at 11:34
3
  • Instead of region give as region_id not sure but guessing that would work out @Lounik Commented Apr 2, 2019 at 11:54
  • hi, thank you. I tried with region_id but unfortunately it doesn't work as well Commented Apr 3, 2019 at 9:37
  • try it vendor file to verify it then make it in your file @Lounik Commented Apr 3, 2019 at 9:52

1 Answer 1

0

Please go to admin

Store->Configuration->General->State Options(Select Your Region. You Want to required).

After Cache Flush.

answered Apr 2, 2019 at 12:32
1
  • I don't want it to be required. It's ok for it to be optional. What I want is that - if the customer fills it in - he can only write two letters. Commented Apr 3, 2019 at 9:36

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.