Javascript 带敲除js的不可见recaptcha
我正在完成不可见的recaptcha,但是我在实现它时遇到了问题,google开发者页面中的代码显示它应该是这样的Javascript 带敲除js的不可见recaptcha,javascript,jquery,knockout.js,recaptcha,Javascript,Jquery,Knockout.js,Recaptcha,我正在完成不可见的recaptcha,但是我在实现它时遇到了问题,google开发者页面中的代码显示它应该是这样的 <button class="g-recaptcha" data-sitekey="6Lee9CEUAA....." data-callback="YourOnSubmitFn"> Submit </button> 因此,我想知道如何使用google提供的新代码调用此函数,我尝试删除数据回调并添加数据绑定,但dint work需要帮助。Jose Luis的
<button
class="g-recaptcha"
data-sitekey="6Lee9CEUAA....."
data-callback="YourOnSubmitFn">
Submit
</button>
因此,我想知道如何使用google提供的新代码调用此函数,我尝试删除
数据回调
并添加数据绑定
,但dint work需要帮助。Jose Luis的评论是正确的!乔治·迪米特里亚迪斯(George Dimitriadis)的想法是正确的,如果你结合他们提出的解决方案
通过以下步骤,您将了解到可以轻松地设置jquery函数来调用knockout函数。然后您可以设置按钮,将Jquery函数作为回调函数发送,回调函数只调用knockout函数,而knockout函数将发送grecaptcha响应作为其ajax请求的一部分。
因此,在head标记中,可以创建如下jquery函数:
<script>
function loginCB() {
yourViewModel.callLoginFunction();
}
</script>
self.callLoginFunction= function () {
response = grecaptcha.getResponse()
$.ajax({
type: 'POST',
url: BASEURL + 'index.php/login/loginUsingAjax/' + auth,
contentType: 'application/json; charset=utf-8',
data: ko.toJSON({
email : self.eMail(),
password : self.passWord(),
recaptcha : response
})
})
.done(function(returnmsg) {
return window.location.href = BASEURL + 'index.php/main/index';
})
.fail(function(jqXHR, textStatus, errorThrown) {
self.loggedIn('failed');
grecaptcha.reset();
})
.always(function(data){
self.passWord(null);
});
};
通过ajax请求发送响应代码的方式可能还不错,但我看不出您是如何做到的
我假设您正在询问如何设置recaptcha的客户端,因此我假设您知道如何处理服务器上随ajax请求发送的响应代码。
self。callLoginFunction
指的是self
中定义的变量。因此,也许您可以尝试像这样定义数据回调data callback=“ACTUALVARNAME.callLoginFunction”
?@GeorgeDimitriadis我的敲除js文件开始于这样的函数AppViewModel(LoginNuViewModel){var self=this;你的意思是这样写,,,,AppViewModel.callLoginFunction?这个链接:给出了一个类似问题的解决方案,从jQuery调用一个敲除函数。希望这对你有帮助。@Farhana是的,这就是我的意思,也许,只是也许它会起作用。@GeorgeDimitriadis我试过,力道:(
<script>
function loginCB() {
yourViewModel.callLoginFunction();
}
</script>
<script>
yourViewModel = new login_vm();
ko.applyBindings(yourViewModel, $("#login")[0]);
</script>
<button
class="g-recaptcha"
data-sitekey="6Lee9CEUAA....."
data-callback="loginCB">
Submit
</button>
self.callLoginFunction= function () {
response = grecaptcha.getResponse()
$.ajax({
type: 'POST',
url: BASEURL + 'index.php/login/loginUsingAjax/' + auth,
contentType: 'application/json; charset=utf-8',
data: ko.toJSON({
email : self.eMail(),
password : self.passWord(),
recaptcha : response
})
})
.done(function(returnmsg) {
return window.location.href = BASEURL + 'index.php/main/index';
})
.fail(function(jqXHR, textStatus, errorThrown) {
self.loggedIn('failed');
grecaptcha.reset();
})
.always(function(data){
self.passWord(null);
});
};