Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带敲除js的不可见recaptcha_Javascript_Jquery_Knockout.js_Recaptcha - Fatal编程技术网

Javascript 带敲除js的不可见recaptcha

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的

我正在完成不可见的recaptcha,但是我在实现它时遇到了问题,google开发者页面中的代码显示它应该是这样的

<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);                
        });
     };