Переходите к следующему шагу, если поле действительно - PullRequest
0 голосов
/ 31 августа 2018

Я хочу перейти к следующему этапу тура, если поле не пустое.
Полный код:

var EnjoyHintWizard = /**@class*/ (function () {
    function EnjoyHintWizard() {
        var _this = this;
        this.enjoyhint_instance = new EnjoyHint({});

        this.enjoyhint_script_steps = [                
            {
                'key .field-survey-name' : __('input_survey_name'),
                keyCode : 13,
                showSkip: false
            },
            {
                'next .form-builder-start-page' : __('select_element'),
                nextButton: {
                    text: __('next')
                },
                showSkip: false
            },
            {
                'click .tab-questions' : __('select_element'),
                showSkip: false
            },               
            {
                'click .fa-map-marker' : __('go_to_point'),
                showSkip: false
            },
            {
                'click .btn-add_point' : __('click_on_btn_add_point'),
                showSkip: false
            },
            {
                'key .input-point-name' : __('fill_this_fields'),
                keyCode: 13,
                showSkip: false
            },
            {
                'custom .fields-add-point' : __('fill_this_fields'),
                event: function () {

                },
                onBeforeStart: function () {
                    console.log('this');
                   //_this.enjoyhint_instance.trigger('click_enter');
                    // var inputField = $('.input-point-name').find('input[type="text"]');
                    // console.log(inputField);
                    // $(document).ready(function() {
                    //     inputField.keyup(function (event) {
                    //         if (event.keyCode === 13) {
                    //             console.log('entered');
                    //             if (inputField.val() || inputField.val() !== '') {
                    //                 _this.enjoyhint_instance.trigger('click_enter');
                    //             }
                    //         }
                    //     });
                    // });
                },
                showSkip: false
            },
            {
                'custom .btn-save-point' : __('click_save_point'),
                event: 'custom_event_name',
                onBeforeStart: function () {
                        _this.enjoyhint_instance.trigger('custom_event_name');
                        console.log(_this.enjoyhint_instance.getCurrentStep());
                },
                showSkip: false
            },               
            {
                'click .btn-download-sticker' : __('click_btn_download'),
                skipButton: {
                    text: __('skip')
                }
            }
        ];
    }

    EnjoyHintWizard.prototype.startTour = function () {
        this.enjoyhint_instance.set(this.enjoyhint_script_steps);
        this.enjoyhint_instance.run();
    };

    EnjoyHintWizard.prototype.resumeTour = function () {
        this.enjoyhint_instance.reRunScript(13);
    };       
    return EnjoyHintWizard;
}());

Когда я нажимаю кнопку, введите exec следующий шаг, хотя предыдущее поле, если пустое. Это мой весь код. Я пытаюсь добавить триггер для пользовательских событий, но это не помогло. Я смотрю в официальной документации, но он очень короткий https://github.com/xbsoftware/enjoyhint

1 Ответ

0 голосов
/ 18 сентября 2018

Я решил эту проблему следующим образом:

 {
    'custom .input-name' : __('fill_name'),
     event: 'enter_name',
     showSkip: false,
     onBeforeStart: function () {
        this.isValid('input-name', 'enter_name');
     }
 }

Я бы сделал пользовательское событие для перехода к следующему шагу и использовал бы его метод onBefforeStart внутри допустимого поля и, если это допустимое событие вызова, для перехода к следующему этапу тура.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...