답변:
기본적으로 사용자 지정 유효성 검사 방법을 등록한 다음 system.xml
파일 의 필드에 사용해야 합니다.
검증 방법을 정의하십시오.
jQuery.validator.addMethod(
"validate-custom",
function (v) {
return jQuery.mage.isEmptyNoTrim(v) || /^[1-4]+$/.test(v);
},
'Please use digits only (1-4) in this field.'
);
그리고 당신의 분야에 사용하십시오 system.xml
:
<validate>validate-number validate-zero-or-greater validate-custom</validate>
Magento 2 핵심 코드에서 "validator.addMethod"를 검색하면 더 복잡한 사용 사례를 보여주는 예제가 많이 있습니다.
@Wojtek Naruniec이 작성하는 것처럼, 자바 스크립트 파일에서 고유 한 사용자 지정 유효성 검사 방법을 만들어 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 / web / 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 / layout / 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>
이제 유효성 검사기를 사용 하여 system.xml 파일 의 <validate>
태그에 <field>
태그를 추가 할 수 있습니다 .
<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>