Question

I am trying to override checkout_index_index.xml using below code for minimum digits :

<item name="telephone" xsi:type="array">
    <item name="validation" xsi:type="array">
        <item name="min-digits" xsi:type="number">8</item>
    </item>
    <item name="config" xsi:type="array">                                                                          
        <item name="tooltip" xsi:type="array">
            <item name="description" xsi:type="string" translate="true">For delivery questions.</item>                                                    
        </item>
    </item>
</item>

But when I run all the Magento command the rule is not goes performed. Even also I developed a plugin for this :

public function afterMerge(\Magento\Checkout\Block\Checkout\AttributeMerger $subject, $result)
{
    if (array_key_exists('telephone', $result)) {
        $result['telephone']['config']['additionalClasses'] = 'validate-digits';
        $result['telephone']['config']['additionalClasses'] = 'min-digits-8';
        $result['telephone']['additionalClasses'] = 'validate-digits';
        $result['telephone']['additionalClasses'] = 'min-digits-8';
        $result['telephone']['validation']['validate-digits'] = true;
        $result['telephone']['validation']['min-digits'] = 8;
    }

    return $result;
}

But from this also minimum digits validation does not perform. can anyone suggest me which thing i am going to miss ?

I also try to just change the Magento default validation in

<item name="company" xsi:type="array">
    <item name="validation" xsi:type="array">
        <item name="min_text_length" xsi:type="number">5</item>
    </item>
</item>

here I just change from 0 to 5 but still that also not working.

Magento version i used is 2.3.0

Was it helpful?

Solution

no need to deploy code after this just need to clear cache.

checkout_index_index.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">
                                                            <item name="shipping-address-fieldset" xsi:type="array">
                                                                <item name="children" xsi:type="array">
                                                                    <item name="telephone" xsi:type="array">
                                                                        <item name="validation" xsi:type="array">
                                                                            <item name="min_text_length" xsi:type="number">8</item>
                                                                            <item name="max_text_length" xsi:type="number">8</item>
                                                                            <item name="validate-digits" xsi:type="boolean">true</item>
                                                                        </item>
                                                                    </item>
                                                                </item>
                                                            </item>
                                                        </item>
                                                    </item>
                                                </item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </argument>
                </arguments>
            </referenceBlock>
    </body>
</page>

please check below frontend view.

enter image description here

OTHER TIPS

@hi Saif Ali i found my solution to change the input type text to number through custom module using below code :

VENDOR_MODULE/js/form/element/telephone VENDOR_MODULE/form/element/telephone 8 true

after this remove the cache,generate and do setup upgrade and deploy and it's working.

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top