Hello Dear Friends!!!
In this article, we are going to learn how we can add custom validation in a field in UI component form.
First of all, we will create our custom validation js file. Here, I have created wk-storeurl-validation.js file inside the <magento-root-dir>/app/code/Vendor/Module/view/adminhtml/web/js/ directory.
require( [ 'Magento_Ui/js/lib/validation/validator', 'jquery', 'mage/translate' ], function(validator, $){ validator.addRule( 'wk-storeurl-validation', function (value) { return !(/[^a-z^A-Z^0-9\.\-]/g.test(value)); }, $.mage.__('Store Url can contain dash (-) and alphanumric values only.') ); });
Now, we will add this file to the head section of the layout file. Here, I have added my js file in routename_customform_edit.xml file inside the <magento-root-dir>/app/code/Vendor/Module/view/adminhtml/layout/ directory.
<?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <update handle="styles"/> <head> <link src="Vendor_Module::js/wk-storeurl-validation.js"/> </head> <body> <referenceContainer name="content"> <uiComponent name="tenants_form"/> </referenceContainer> </body> </page>
Now, we will add our custom validation rule in the form field in the UI component form. Here, I have added my custom validation rule named “wk-storeurl-validation” in the store_url field in the tenants_form.xml file as follows:
<field name="store_url"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Store URL</item> <item name="formElement" xsi:type="string">input</item> <item name="dataScope" xsi:type="string">store_url</item> <item name="required" xsi:type="boolean">true</item> <item name="notice" xsi:type="string" translate="true"> Enter store URL name. For example: xyzshop </item> <item name="validation" xsi:type="array"> <item name="required-entry" xsi:type="boolean">true</item> <strong><item name="wk-storeurl-validation" xsi:type="boolean">true</item></strong> <item name="validate-no-html-tags" xsi:type="boolean">true</item> </item> </item> </argument> </field>
Now, when we input the wrong value in the form field store_url and save the form, then we will get an error as in the following image:

Hope this will be helpful.
Thanks 🙂
Be the first to comment.