@lookingfor2

Почему не видит метод?

Здравствуйте! Объясните пожалуйста почему не видит метод checkAttributeName который я вызываю в цикле
validateInput: function(){

                let field = [];
                let input = this.$el.find('input[data-validate]');
                input.each(function () {
                    field.push('input[data-validate]');
                    let value = $(this).val();
                    for(let i=0;i<field.length;i++) {
                        if(this.getAttribute('name') === "name"){
                            this.checkAttributeName(value);
                        }
                        else if( !value ) {
                           console.log("пусто");
                        }
                    }
                });

        },
        checkAttributeName: function(value){
            console.log(value);
            if (value.length < 2){
                console.log("Длинна введенных данных меньше допустимого значения");
            }else if(typeof value !== "string"){
                console.log("erro");
            }
        },

При том что выше я так же вызываю метод в другом методе и все работает
numberActiveTab: function () {
            for (let i = 0; i <= this.$tab.length - 1; i++){
                if (this.$tab[i].classList.contains('active')){
                    return i;
                }
            }
        },
        changeClassElement: function(button){
            let countAllTabs = this.$tab.length - 1;

            let clickButton = button;
            let resultNumberActiveTab = this.numberActiveTab();
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@shsv382
Вызываешь метод внутри объекта input, меняется this. Попробуй
validateInput: function(){
                const checkAttributeName = this.checkAttributeName.bind(this)
                let field = [];
                let input = this.$el.find('input[data-validate]');
//   ... далее по тексту ...
if(this.getAttribute('name') === "name"){
                            checkAttributeName(value);
                        }
// ... далее по тексту ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы