Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2018, 17:04
Аспирант
Отправить личное сообщение для cinema4d Посмотреть профиль Найти все сообщения от cinema4d
 
Регистрация: 07.08.2013
Сообщений: 41

активация кнопки при проверке google капча
Подскажите, как активировать строку <input type="submit" value="<?php echo $button_continue; ?>" class="button" /> кнопку продолжить, если данные с капчи google = true ? не перезагружая страницу
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2018, 18:58
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

setInterval(function(){
	if (google = true) document.querySelector('.button').click()
},1000);
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2018, 19:48
Аспирант
Отправить личное сообщение для cinema4d Посмотреть профиль Найти все сообщения от cinema4d
 
Регистрация: 07.08.2013
Сообщений: 41

Сообщение от j0hnik Посмотреть сообщение
setInterval(function(){
	if (google = true) document.querySelector('.button').click()
},1000);
огромное спасибо, но если можно еще вопрос? как перехватить ответ гугля? то есть как сработает что нажата капча и возвращает значение

из обработчика php? я так понимаю без перезагрузки страницы


я в php еще понимаю а в аяксах явах и джейсон дуб

Последний раз редактировалось cinema4d, 25.01.2018 в 19:52.
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2018, 21:45
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

гугл капчей не пользовался, нужно читать документацию
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2018, 15:51
Аспирант
Отправить личное сообщение для cinema4d Посмотреть профиль Найти все сообщения от cinema4d
 
Регистрация: 07.08.2013
Сообщений: 41

.button - это класс кнопки?
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2018, 15:59
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

cinema4d, смотрите раздел "g-recaptcha tag attributes and grecaptcha.render parameters".
Вам нужен атрибут "data-callback".
https://developers.google.com/recapt...splay#js_param
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2018, 17:29
Аспирант
Отправить личное сообщение для cinema4d Посмотреть профиль Найти все сообщения от cinema4d
 
Регистрация: 07.08.2013
Сообщений: 41

Сообщение от Nexus Посмотреть сообщение
cinema4d, смотрите раздел "g-recaptcha tag attributes and grecaptcha.render parameters".
Вам нужен атрибут "data-callback".
https://developers.google.com/recapt...splay#js_param
спс я почитаю, не ожидал увидеть комментарий)

я тут слепил костыль из того что было если не сложно посмотрите, при проверке и нажатии хочу активировать вторую кнопку id="button"

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
        <script src="https://www.google.com/recaptcha/api.js"></script>
    </head>
    <body>

        <div class="container">
            <form class="form-horizontal">
                <div class="form-group">
                    <label for="login" class="col-sm-3 control-label">Ваш логин</label>
                    <div class="col-sm-9">
                        <input type="text" name="login" class="form-control">
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-3 col-sm-9">
                        <div class="g-recaptcha" data-sitekey="AAAAA"></div> / скрыл реальный код
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-3 col-sm-9">
                        
                        
                        <button type="submit" class="btn btn-primary">Отправить</button>
                        
                        
                        <button type="submit" id="button" disabled="disabled" class="btn btn-primary">Отправить</button>
                        
                        
                    </div>

                </div>

            </form>
        </div>



        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

        <script type="text/javascript">
            $("form").submit(function(e){
                e.preventDefault();

                var login = $("input").val();

                $.ajax({
                    url: 'handler.php',
                    type: "post",
                    data: "login=" + login + "&g-recaptcha-response=" + grecaptcha.getResponse(),
                    success: function(data) {
                        if(data === 'ok') {
                            $('#button').attr('disabled','disable');
                        } else {
                            console.log(data);
                        }
                    }
                })
            });
        </script>


    </body>
</html>


<?php

if($_POST['g-recaptcha-response']) {
  $captcha = $_POST['g-recaptcha-response'];
  $secret = "AAAA"; // скрыл реальный код

  $json = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=". $secret . "&response=" . $captcha), true);

  if($json['success']) {
      echo "ok";
  } else {
      echo "recaptcha error";
  }
}  else {
    echo "Вы не ввели значение recaptcha";
}

 ?>
Ответить с цитированием
  #8 (permalink)  
Старый 26.01.2018, 17:44
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

cinema4d, я думаю и этого достаточно.
<div class="g-recaptcha" data-sitekey="AAAAA" data-callback="someFunctionName"></div>
<script>function someFunctionName(){
    $('#button').removeAttr('disabled');
}</script>

В документации, насколько помню, написано, что callback будет вызван только после успеха.

upd. непонятно зачем так извращаться с активацией сабмит-кнопки.
Вставили на страницу рекапчу, на сервере перед проверкой данных проверили капчу.
Если капча "верна", то продолжаем работу, нет, что-нибудь да делаем.
Зачем делать дополнительную проверку на клиенте, если боту она до лампочки?

Последний раз редактировалось Nexus, 26.01.2018 в 17:47.
Ответить с цитированием
  #9 (permalink)  
Старый 26.01.2018, 18:44
Аспирант
Отправить личное сообщение для cinema4d Посмотреть профиль Найти все сообщения от cinema4d
 
Регистрация: 07.08.2013
Сообщений: 41

я так понимаю добавления data-callback ?

<div class="g-recaptcha" data-sitekey="6Lcv7BoUAAAAAHpmHEEYxvuNUbGwdtWnbe_J1hqL" data-callback="onSuccess">
Ответить с цитированием
  #10 (permalink)  
Старый 26.01.2018, 19:10
Аспирант
Отправить личное сообщение для cinema4d Посмотреть профиль Найти все сообщения от cinema4d
 
Регистрация: 07.08.2013
Сообщений: 41

Сообщение от Nexus
В документации, насколько помню, написано, что callback будет вызван только после успеха.
вот работает, но не знаю как активировать кнопку

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
        <script src="https://www.google.com/recaptcha/api.js"></script>
    </head>
    <body>

        <div class="container">
            <form class="form-horizontal">
                <div class="form-group">
                    <label class="col-sm-3 control-label">Ваш логин</label>
                    <div class="col-sm-9">
                        <input type="text" name="login" class="form-control">
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-3 col-sm-9">
                        <div class="g-recaptcha" data-sitekey="6Lcv7BoUAAAAAHpmHEEYxvuNUbGwdtWnbe_J1hqL" data-callback="onSuccess"></div>
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-3 col-sm-9">
                        
                        
                        <button type="submit" class="btn btn-primary">Отправить</button>
                        
                        
                        <button type="submit" id="button"  disabled="disabled" class="btn btn-primary">Отправить</button>
                        
                        
                    </div>

                </div>

            </form>
        </div>



        

        <script>
var onSuccess = function(response) 

                    {
                        alert('Hello World!');
                        
                        $('#button').attr('disabled','disable');
                        
                        
                    };
                    
        </script>


    </body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эмуляция нажатия кнопки при определенном действии ivanplaster Events/DOM/Window 2 28.11.2016 13:51
Как можно активировать обработчик не по нажатию кнопки, а при всплытии формы? DDim1000 jQuery 7 25.11.2016 14:22
Переход по ссылке при помощи правой кнопки мыши. SERGEY_121 Общие вопросы Javascript 3 02.11.2015 00:14
Java Script, активация кнопки при попытке редактирования формы Алекс_ Элементы интерфейса 2 07.05.2015 05:18
Активация кнопки при вводе верного ответа JukiPuki Общие вопросы Javascript 3 08.02.2010 23:12