diff --git a/README.md b/README.md index 1d5ae44..05bb5bc 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,9 @@ Returns bool Just include **{{ recaptcha }}** wherever you want to show the recaptcha +Additionally, you can use the syntax **{{ recaptcha_callback() }}** +or **{{ recaptcha_callback(callback="some_callback_function") }}** +to use JavaScript callback function (default name - 'recaptcha_callback'). ## Config @@ -109,7 +112,7 @@ The following are **Optional** arguments. RECAPTCHA_THEME = "dark" RECAPTCHA_TYPE = "image" RECAPTCHA_SIZE = "compact" - RECAPTCHA_RTABINDEX = 10 + RECAPTCHA_TABINDEX = 10 --- diff --git a/flask_recaptcha.py b/flask_recaptcha.py index d2c2648..d51c1ca 100644 --- a/flask_recaptcha.py +++ b/flask_recaptcha.py @@ -4,7 +4,7 @@ """ __NAME__ = "Flask-ReCaptcha" -__version__ = "0.4.2" +__version__ = "0.4.3" __license__ = "MIT" __author__ = "Mardix" __copyright__ = "(c) 2015 Mardix" @@ -56,18 +56,26 @@ def init_app(self, app=None): @app.context_processor def get_code(): - return dict(recaptcha=Markup(self.get_code())) + def _get_code(callback="recaptcha_callback"): + return Markup(self.get_code(callback=callback)) + return dict(recaptcha=_get_code(callback=None), recaptcha_callback=_get_code) - def get_code(self): + def get_code(self, callback=None): """ + :param callback: adds a JavaScript callback function name Returns the new ReCaptcha code :return: """ + if callback: + data_callback = ' data-callback="{CALLBACK}"'.format(CALLBACK=callback) + else: + data_callback = "" return "" if not self.is_enabled else ("""
- """.format(SITE_KEY=self.site_key, THEME=self.theme, TYPE=self.type, SIZE=self.size, TABINDEX=self.tabindex)) + data-tabindex="{TABINDEX}"{DATA_CALLBACK}> + """.format(SITE_KEY=self.site_key, THEME=self.theme, TYPE=self.type, SIZE=self.size, TABINDEX=self.tabindex, + DATA_CALLBACK=data_callback)) def verify(self, response=None, remote_ip=None): if self.is_enabled: