1

I have tried all types of method but only login form validation is applying. But other forms not working. Even writing js in the phtml is not applying for the other forms.

<form class="form form-edit-account" action="<?= $block->escapeUrl($block->getUrl('customer/account/editPost')) ?>" method="post" id="form-validate" enctype="multipart/form-data" data-hasrequired="<?= $block->escapeHtmlAttr(__('* Required Fields')) ?>" autocomplete="off" data-mage-init='{"validation":{}}'">
<fieldset class="fieldset info">
    <?= $block->getBlockHtml('formkey') ?>
    <legend class="legend"><span><?= $block->escapeHtml(__('Account Information')) ?></span></legend><br>
    <?= $block->getLayout()->createBlock('Magento\Customer\Block\Widget\Name')->setObject($block->getCustomer())->toHtml() ?>

    <?php $_dob = $block->getLayout()->createBlock('Magento\Customer\Block\Widget\Dob') ?>
    <?php $_taxvat = $block->getLayout()->createBlock('Magento\Customer\Block\Widget\Taxvat') ?>
    <?php $_gender = $block->getLayout()->createBlock('Magento\Customer\Block\Widget\Gender') ?>
    <?php if ($_dob->isEnabled()): ?>
        <?= $_dob->setDate($block->getCustomer()->getDob())->toHtml() ?>
    <?php endif ?>
    <?php if ($_taxvat->isEnabled()): ?>
        <?= $_taxvat->setTaxvat($block->getCustomer()->getTaxvat())->toHtml() ?>
    <?php endif ?>
    <?php if ($_gender->isEnabled()): ?>
        <?= $_gender->setGender($block->getCustomer()->getGender())->toHtml() ?>
    <?php endif ?>
    <div class="field choice">
        <input type="checkbox" name="change_email" id="change-email" data-role="change-email" value="1" title="<?= $block->escapeHtmlAttr(__('Change Email')) ?>" class="checkbox" />
        <label class="label" for="change-email"><span><?= $block->escapeHtml(__('Change Email')) ?></span></label>
    </div>
    <div class="field choice">
        <input type="checkbox" name="change_password" id="change-password" data-role="change-password" value="1" title="<?= $block->escapeHtmlAttr(__('Change Password')) ?>"<?php if ($block->getChangePassword()): ?> checked="checked"<?php endif; ?> class="checkbox" />
        <label class="label" for="change-password"><span><?= $block->escapeHtml(__('Change Password')) ?></span></label>
    </div>
</fieldset>

<fieldset class="fieldset password" data-container="change-email-password">
    <legend class="legend"><span data-title="change-email-password"><?= $block->escapeHtml(__('Change Email and Password')) ?></span></legend><br>
    <div class="field email required" data-container="change-email">
        <label class="label" for="email"><span><?= $block->escapeHtml(__('Email')) ?></span></label>
        <div class="control">
            <input type="email" name="email" id="email" autocomplete="email" data-input="change-email" value="<?= $block->escapeHtmlAttr($block->getCustomer()->getEmail()) ?>" title="<?= $block->escapeHtmlAttr(__('Email')) ?>" class="input-text" data-validate="{'required':true,'validate-length':true,'minlength':6,'maxlength':50,'validate-email':true}" />
        </div>
    </div>
    <div class="field password current required">
        <label class="label" for="current-password"><span><?= $block->escapeHtml(__('Current Password')) ?></span></label>
        <div class="control">
            <input type="password" class="input-text" name="current_password" id="current-password" data-input="current-password" autocomplete="off" />
        </div>
    </div>
    <div class="field new password required" data-container="new-password">
        <label class="label" for="password"><span><?= $block->escapeHtml(__('New Password')) ?></span></label>
        <div class="control">
            <input type="password" class="input-text" name="password" id="password"
                data-password-min-length="<?= $block->escapeHtml($block->getMinimumPasswordLength()) ?>"
                data-password-min-character-sets="<?= $block->escapeHtml($block->getRequiredCharacterClassesNumber()) ?>"
                data-input="new-password"
                data-validate="{required:true, 'validate-customer-password':true}"
                autocomplete="off" />
            <div id="password-strength-meter-container" data-role="password-strength-meter" aria-live="polite">
                <div id="password-strength-meter" class="password-strength-meter">
                    <?= $block->escapeHtml(__('Password Strength')) ?>:
                    <span id="password-strength-meter-label" data-role="password-strength-meter-label">
                        <?= $block->escapeHtml(__('No Password')) ?>
                    </span>
                </div>
            </div>
        </div>
    </div>
    <div class="field confirm password required" data-container="confirm-password">
        <label class="label" for="password-confirmation"><span><?= $block->escapeHtml(__('Confirm New Password')) ?></span></label>
        <div class="control">
            <input type="password" class="input-text" name="password_confirmation" id="password-confirmation"
                data-input="confirm-password"
                autocomplete="off" />
        </div>
    </div>
</fieldset>
<?= $block->getChildHtml('form_additional_info') ?>
<div class="actions-toolbar">
    <div class="primary">
        <button type="submit" class="action save primary" title="<?= $block->escapeHtmlAttr(__('Save')) ?>"><span><?= $block->escapeHtml(__('Save')) ?></span></button>
    </div>
    <div class="secondary">
        <a class="action back" href="<?= $block->escapeUrl($block->getBackUrl()) ?>"><span><?= $block->escapeHtml(__('Go back')) ?></span></a>
    </div>
</div>

require([ "jquery", "mage/mage" ], function($){ var dataForm = $('#form-validate'); var ignore = isEnabled() ? '\'input[id$="full"]\'' : 'null' ?>; dataForm.mage('validation', { isEnabled()): ?> errorPlacement: function(error, element) { if (element.prop('id').search('full') !== -1) { var dobElement = $(element).parents('.customer-dob'), errorClass = error.prop('class'); error.insertAfter(element.parent()); dobElement.find('.validate-custom').addClass(errorClass) .after(''); } else { error.insertAfter(element); } }, ignore: ':hidden:not(' + ignore + ')' ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden' }); }); { "[data-role=change-email], [data-role=change-password]": { "changeEmailPassword": { "titleChangeEmail": "escapeJs($block->escapeHtml(__('Change Email'))) ?>", "titleChangePassword": "escapeJs($block->escapeHtml(__('Change Password'))) ?>", "titleChangeEmailAndPassword": "escapeJs($block->escapeHtml(__('Change Email and Password'))) ?>" } }, "[data-container=new-password]": { "passwordStrengthIndicator": { "formSelector": "form.form-edit-account" } } }
  • data-validate="{'required':true,'validate-length':true,'validate-number':true,'minlength':6,'maxlength':50}" the above code is not applying – Chethan Sreenivasa Murthy Dec 19 '18 at 7:30
  • data-mage-init='{"validation":{}}' I have also used the above code in the form – Chethan Sreenivasa Murthy Dec 19 '18 at 7:30
  • I am also not getting the error message – Chethan Sreenivasa Murthy Dec 19 '18 at 7:32
  • What is the error you are getting? Also post the full form code to your question. – Sukumar Gorai Dec 19 '18 at 8:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.