Skip to content

Instantly share code, notes, and snippets.

@patorash
Last active February 14, 2019 08:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patorash/ccfef86bb04c03f81ead161659554ccc to your computer and use it in GitHub Desktop.
Save patorash/ccfef86bb04c03f81ead161659554ccc to your computer and use it in GitHub Desktop.
knockout.jsとreCAPTCHAを連携させる
ko.bindingHandlers.recaptcha = {
init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
var propWriters = allBindings()['_ko_property_writers'];
var value = valueAccessor();
document.addEventListener('createCaptcha', function(event, theme) {
var site_key = document.querySelector('.g-recaptcha').dataset.sitekey
var callback = allBindings.get('recaptchaCallback') || function () {
if (!value) {
if (ko.isObservable(value)) {
value = true
} else {
propWriters.recaptcha(true)
}
}
};
window.widgetId = grecaptcha.render('recaptcha', {
sitekey: site_key,
theme: theme,
callback: callback,
'expired-callback': function() {
grecaptcha.reset(widgetId);
if (ko.isObservable(value)) {
value = false
} else {
propWriters.recaptcha(false)
}
}
})
});
}
};
ko.expressionRewriting._twoWayBindings['recaptcha'] = true;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment