Ich versuche, eine benutzerdefinierte Validierung für eines meiner Magento 2-Formularfelder durchzuführen, die über UI-Komponenten generiert wird.
Ich weiß, dass ich den erforderlichen Wert durch Hinzufügen eines validation
Elements in der Konfiguration erreichen kann.
So was:
<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>
Was muss ich in das validation
Element einfügen und wo platziere ich den js-Code, der mein Feld basierend auf benutzerdefinierten Bedingungen validieren soll?
Zum Beispiel möchte ich, dass es einem bestimmten regulären Ausdruck entspricht.
quelle
<script scr=""
irgendwo auf der Seite verwenden kann.$.validator.addMethod
funktioniert möglicherweise nur für Formulare, die nicht über UI-Komponenten erstellt wurden. Für Komponenten wird die Validierung überhttps://github.com/magento/magento2/blob/2.1/app/code/Magento/Ui/view/base/web/js/lib/validation/validator.js
diese Verwendungen durchgeführthttps://github.com/magento/magento2/blob/2.1/app/code/Magento/Ui/view/base/web/js/lib/validation/rules.js
. Ich denke, ich muss einen Weg finden, dies zu erweitern.