Пользовательская проверка проверки - Два поля должны иметь одинаковое значение: M2
Я прочитал этот URL-адрес для проверки equalTo.
У меня есть добавить пользовательское поле с помощью LayoutProcessor.php файл и установите проверку следующим образом:
'validation' => ['validate-no-empty' => false,'validate-password' => true,'min_text_length' => 7, 'max_text_length' => 20,],
Все вышеперечисленные проверки работают хорошо, за исключением "equalTo".
Я попробовал так:, "equalTo" => "#fieldname"
но все еще не работает, кто-нибудь может мне помочь, как я могу использовать "Равную" проверку в LayoutProcessor.php файл?
Мой код:
<?php
namespace Packeg\Modulename\Plugin\Checkout\Model\Checkout;
class LayoutProcessor
{
public function afterProcess(
\Magento\Checkout\Block\Checkout\LayoutProcessor $subject,
array $jsLayout
) {
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->get('Magento\Customer\Model\Session');
if(!$customerSession->isLoggedIn()) {
$jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children']
['shippingAddress']['children']['before-shipping-method-form']['children']['password_1'] = [
'component' => 'Magento_Ui/js/form/element/abstract',
'config' => [
'customScope' => 'shippingAddress',
'template' => 'ui/form/field',
'elementTmpl' => 'ui/form/element/password',
'id' => 'password_1'
],
'dataScope' => 'shippingAddress.password_1',
'label' => 'Create Password',
'provider' => 'checkoutProvider',
'visible' => true,
'validation' => ['validate-no-empty' => false,'validate-password' => true,'min_text_length' => 7, 'max_text_length' => 20,],
'sortOrder' => 250,
'id' => 'password_1'
];
$jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children']
['shippingAddress']['children']['before-shipping-method-form']['children']['password_2'] = [
'component' => 'Magento_Ui/js/form/element/abstract',
'config' => [
'customScope' => 'shippingAddress',
'template' => 'ui/form/field',
'elementTmpl' => 'ui/form/element/password',
'id' => 'password_2'
],
'dataScope' => 'shippingAddress.password_2',
'label' => 'Re-enter Password',
'provider' => 'checkoutProvider',
'visible' => true,
'validation' => ['validate-no-empty' => true, 'validate-password2'=> true , "min_text_length" => 7, "max_text_length" => 20],
'sortOrder' => 255,
'id' => 'password_2'
];
}
return $jsLayout;
}
}
3
1 answers
Попробуйте это:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->get('Magento\Customer\Model\Session');
if(!$customerSession->isLoggedIn()) {
$jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children']
['shippingAddress']['children']['before-shipping-method-form']['children']['password_1'] = [
'component' => 'Magento_Ui/js/form/element/abstract',
'config' => [
'customScope' => 'shippingAddress',
'template' => 'ui/form/field',
'elementTmpl' => 'ui/form/element/password',
'id' => 'password_1',
],
'dataScope' => 'shippingAddress.password_1',
'label' => 'Create Password',
'provider' => 'checkoutProvider',
'visible' => true,
'validation' => ['validate-no-empty' => false, 'validate-password' => true, 'min_text_length' => 7, 'max_text_length' => 20,],
'sortOrder' => 250,
'id' => 'password_1'
];
$jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children']
['shippingAddress']['children']['before-shipping-method-form']['children']['password_2'] = [
'component' => 'Magento_Ui/js/form/element/abstract',
'config' => [
'customScope' => 'shippingAddress',
'template' => 'ui/form/field',
'elementTmpl' => 'ui/form/element/password',
'id' => 'password_2'
],
'dataScope' => 'shippingAddress.password_2',
'label' => 'Re-enter Password',
'provider' => 'checkoutProvider',
'visible' => true,
'validation' => ['validate-no-empty' => true, 'validate-password2' => true, "min_text_length" => 7, "max_text_length" => 20,'equalTo'=>'[name="password_1"]'],
'sortOrder' => 255,
'id' => 'password_2'
];
Я добавил это 'equalTo'=>'[name="password_1"]'
в
0
Author: kunj, 2018-07-09 11:53:47