Как вернуть булево значение из плагина 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>