我有一个Rails应用程序,正在使用Recaptcha gem(https://github.com/ambethia/recaptcha)。
我想添加一个带有data-disable-with的不可见的Recaptcha,但这不起作用。当我单击按钮时,我可以看到“已禁用”属性,但是没有出现“请稍候...”数据,并且该按钮也未被禁用。
这是我的代码:
= invisible_recaptcha_tags text: "Sign up", class: 'btn btn-primary', 'data-disable-with' => 'Please wait...'
谁生成此HTML:
<button type="submit" data-sitekey="mykey" data-callback="invisibleRecaptchaSubmit" class="g-recaptcha btn btn-primary" data-disable-with="Please wait...">Sign up</button>
我搜索了原因,并在gem中发现了以下代码:
<script#{nonce_attr}>
var invisibleRecaptchaSubmit = function () {
var closestForm = function (ele) {
var curEle = ele.parentNode;
while (curEle.nodeName !== 'FORM' && curEle.nodeName !== 'BODY'){
curEle = curEle.parentNode;
}
return curEle.nodeName === 'FORM' ? curEle : null
};
var eles = document.getElementsByClassName('g-recaptcha');
if (eles.length > 0) {
var form = closestForm(eles[0]);
if (form) {
form.submit();
}
}
};
</script>
在此文件中:https://github.com/ambethia/recaptcha/blob/master/lib/recaptcha/client_helper.rb
我认为data-disable-with不起作用,因为form.submit();
停止了javascript的传播,因此在提交后禁用按钮的jQuery函数不起作用...
我不知道该如何解决此问题。你可以帮帮我吗?