Estou tentando ter uma validação personalizada para um dos meus campos de formulário do Magento 2 que são gerados por meio de componentes da interface do usuário.
Eu sei que posso criar o valor necessário adicionando um validation
item na configuração.
Como isso:
<field name="title">
<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">Some label here</item>
<item name="formElement" xsi:type="string">input</item>
<item name="source" xsi:type="string">whatever</item>
<item name="sortOrder" xsi:type="number">999</item>
<item name="dataScope" xsi:type="string">whatever</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item><!-- this validates it as required -->
</item>
</item>
</argument>
</field>
O que preciso adicionar dentro do validation
item e onde coloco o código js que deve validar meu campo com base em condições personalizadas?
Por exemplo, quero que ele corresponda a um certo regex.
fonte
<script scr=""
em algum lugar da página.$.validator.addMethod
pode funcionar apenas para formulários que não são criados por meio de componentes da interface do usuário. Para os componentes ui, a validação é feita atravéshttps://github.com/magento/magento2/blob/2.1/app/code/Magento/Ui/view/base/web/js/lib/validation/validator.js
desse usohttps://github.com/magento/magento2/blob/2.1/app/code/Magento/Ui/view/base/web/js/lib/validation/rules.js
. Eu acho que preciso encontrar uma maneira de estender isso.