Как вернуть булево значение из плагина jQuery в html?

В настоящее время я работаю над измерителем надежности пароля, который предоставляет пользователю обновление в реальном времени через событие onkeyfocus. Я решил использовать https://github.com/elationbase/jquery.passwordRequirements для этой цели. В настоящее время я пытаюсь вернуть булево значение из плагина jQuery в мой html, чтобы я мог проверить, полностью ли вводимый пользователем пароль соответствует требованиям. Если нет, то не дать ему продолжить то, что он делает. Ниже приведено то, что я придумал на данный момент. Мой вопрос в том, как я могу передать var is_passed обратно в html?

jQuery Plugin

(function($){
    $.fn.extend({
        passwordRequirements: function(options) {
            // options for plugin
            var defaults {...};
            options =  $.extend(defaults, options);

            var is_passed = false; // the variable that I wish to return

            return this.each(function() {
                ... //skipping all the checks
                $(this).on("keyup focus", function(){
                    var thisVal = $(this).val();
                    if (thisVal !== '') {
                        checkCompleted();
                        if (is_passed === true) {
                            console.log('is_passed', is_passed);
                            return is_passed;
                        }
                    } 
                )};

HTML

<script>
    $(document).ready(function () {
        $('.pr-password').passwordRequirements({});
        var is_passed = $('.pr-password').passwordRequirements({}); //not working as it returns an Obj
    });
</script>

Мне удалось решить ее с помощью callback.

jQuery

(function($) {
    $.fn.extend({
        passwordRequirements: function(options, callback) {
            // options for plugin
            var defaults
            options = $.extend(defaults, options);

            var is_passed = false; // the variable that I wish to return

            return this.each(function() {
                //skipping all the checks
                $(this).on("keyup focus", function() {
                    var thisVal = $(this).val();
                    if (thisVal !== '') {
                        checkCompleted();
                        if (is_passed === true && callback !== null) {
                            return callback({
                                is_passed: is_passed
                            });
                        }
                    }
                });
            });
        }
    });
})(jQuery);

HTML

<script>
    $(document).ready(function () {
        $('.pr-password').passwordRequirements({}, function (action) {
            if (action.is_passed){
                passwordRequirement_passed = action.is_passed;
            }
        });
    });        
</script>
Вернуться на верх