magento 2: запуск проверки формы js без отправки


На пользовательской странице интерфейса у меня есть форма, в которой я использую проверку js magento для проверки входных данных: имя, описание электронной почты и т.д. Когда форма отправлена, проверка запускается и работает должным образом. Мне интересно, есть ли способ вручную вызвать проверку js magento, не требуя действия "отправить".

Вот что я использую для применения проверки

var dataForm = $('#form-validate');
var ignore = null;
dataForm.mage('validation', {
    ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
}).find('input:text').attr('autocomplete', 'off');

И я ищу

$("#form-validate").mageValidate();  // validate form fields

Дайте мне знать, если вам понадобится больше подробно.

Author: Xenocide8998, 2016-11-01

2 answers

Смог выяснить это, обратившись к:

module-checkout-agreements/view/frontend/web/js/model/agreement-validator.js

После включения mage/validation вы должны передать аргумент isValid в mage.validation, чтобы вызвать проверку

Полный код выглядит как

require([
    'jquery',
    'mage/validation'
], function($){

    var dataForm = $('#form-validate');
    var ignore = null;

    dataForm.mage('validation', {
        ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
    }).find('input:text').attr('autocomplete', 'off');

    $('button#my-button').click( function() { //can be replaced with any event
        dataForm.validation('isValid'); //validates form and returns boolean
    });
});

Вы также можете заменить аргумент на clearError, чтобы удалить сообщения об ошибках проверки

 35
Author: Xenocide8998, 2016-11-01 21:28:56

Вы можете попробовать это:

require(["jquery"], function ($) {
    $(document).ready(function () {
        $('#my-button-name').click(function () { // The button type should be "button" and not submit
            if ($('#form-name').valid()) {
                alert("Validation pass");
                return false;
            }else{
                alert("Validation failed");
                return false;
            }
        });
    });
});

Надеюсь, это может вам помочь!

 6
Author: Kazim Noorani, 2018-05-16 09:28:13