ในขณะที่ @Wojtek Naruniec เขียนคุณต้องสร้างวิธีการตรวจสอบที่กำหนดเองของคุณเองในไฟล์ javascript และใช้ในฟิลด์การกำหนดค่าโมดูลของคุณในไฟล์system.xml
สมมติว่าฟิลด์ของคุณเป็น:
<field id="color" translate="label comment" type="text" sortOrder="3" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Color</label>
<comment>Exadecimal value, without #: ex. FFFFFF</comment>
</field>
และคุณต้องการตรวจสอบความยาวของฟิลด์ (เท่ากับ 6 ตัวอักษร)
สร้างไฟล์จาวาสคริปต์ของคุณ
vendorName / modulename / view / adminhtml / เว็บ / js / validation.js
ตัวอย่างเช่น:
require([
'jquery',
'mage/translate',
'jquery/validate'],
function($){
$.validator.addMethod(
'validate-exadecimal-color-length', function (v) {
return (v.length == 6);
}, $.mage.__('Field must have length of 6'));
}
);
จากนั้นโหลดไฟล์จาวาสคริปต์ในหน้าการกำหนดค่าผู้ดูแลระบบดังนั้นคุณต้องสร้างไฟล์
vendorName / modulename / view / adminhtml / รูปแบบ / adminhtml_system_config_edit.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<link src="vendorName_moduleName::js/validation.js"/>
</head>
</page>
ตอนนี้คุณสามารถใช้ตัวตรวจสอบความถูกต้องเพิ่ม<validate>
แท็กใน<field>
แท็กของไฟล์system.xmlของคุณ:
<field id="color" translate="label comment" type="text" sortOrder="3" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Color</label>
<validate>validate-exadecimal-color-length</validate>
<comment>Exadecimal value, without #: ex. FFFFFF</comment>
</field>