Google Recapat和禁用输入

时间:2015-08-03 18:52:53

标签: javascript php jquery input recaptcha

我想使用新的Google Recaptcha。我按照教程检查验证码是否验证良好。现在我想要添加或不添加disabled属性和输入。当验证码错误时,需要禁用输入,当验证码正常时,输入已启用。

这是我现在的代码,但输入并不像我想的那样工作..

<form action="" method="POST">
<?php
    if($_SERVER['REQUEST_METHOD']==='POST' ){
        $key='TA CLE GOOGLE';
        $response=$_POST['g-recaptcha-response'];
        $ip=$_SERVER['REMOTE_ADDR'];
        $gapi='https://www.google.com/recaptcha/api/siteverify?secret=' .$key. '&response='.$response. '&remoteip='.$ip;
        $json=json_decode(file_get_contents($gapi),true);
        if(!$json[ 'success']){
            echo "
                <script>
                    $(\"input\").prop('disabled',true);
                </script>
            ";
        }
        else{
            echo "
                <script>
                    $(\"input\").prop('disabled',false);
                </script>
            ";
        }
    }
?>
<input id="toto" class="btn btn-block btn-success" type="submit" name="submit" value="Resolve"/>

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

将输入字段移到php代码上方。在将输入添加到dom之前,您的js可能正在运行。如果您不想移动html,也可以将js包装在doc中。

编辑: 您还可以使用当前代码设置php变量,并使用它来输出禁用的属性。例如,将$disable_field = FALSE;添加到脚本顶部,使用$disable_field = !$json[ 'success'];代替if else条件,然后输出您的html,如:

<input id="toto" class="btn btn-block btn-success" type="submit" name="submit" value="Resolve" <?php if ($disable_field) echo 'disabled="disabled"';?>/>