我想使用新的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"/>
感谢您的帮助
答案 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"';?>/>