Плагин генерирует ReferenceError при вызове - PullRequest
0 голосов
/ 15 сентября 2018

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

Ошибка:

Uncaught ReferenceError: Validation_Required не определено

мой плагин

(function ($) {

    // This one works fine, but is called on a button click
    $.fn.Validation = function (options)...

    // This is the plugin that throws the ReferenceError
    $.fn.Validation_Required = function (e) {
        let me = $('#' + e.target.id);

        if (me[0].value.length > 0) {
            me.css('border', '2px solid green');
        }
        else {
            me.css('border', '2px solid red');
        }
        return;
    }
}(jQuery));

вызов для функции

$('.required').blur((e) => {
        Validation_Required(e);
});

Почему выдается ошибка?

1 Ответ

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

Ваша проблема в этой строке:

Validation_Required(e);

Изменить на:

$(this).Validation_Required(e);

Validation_Required - это не глобальная функция, а новый метод, добавленный в jQuery. Следовательно, вам нужен объект jQuery, чтобы использовать эту функцию.

(function ($) {

    // This one works fine, but is called on a button click
    $.fn.Validation = function (options) {
    }

    // This is the plugin that throws the ReferenceError
    $.fn.Validation_Required = function (e) {
        console.log('Validation_Required called....');
        return;
        let me = $('#' + e.target.id);

        if (me[0].value.length > 0) {
            me.css('border', '2px solid green');
        }
        else {
            me.css('border', '2px solid red');
        }
        return;
    }
}(jQuery));


$('.required').blur(function (e) {
    $(this).Validation_Required(e);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input class="required" type="text">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...