2017-10-23 16 views
3

フォームの送信ボタンを有効にしようとしているのは、ユーザーがテキストボックス内に正しいキャプチャ(イメージとして表示されている)値を入力した場合のみです。 captchaはテキストボックスのIDです。ボタンが有効で無効になっていないのはなぜですか?

このテキストボックスの各キーには、ErrorProcessing.phpというファイルに送信されるAJAXリクエストがあります。"wrong text entered"またはnullのいずれかのHTML変数が提供されます。送信ボタンは、その値に基づいてのみ有効になります。これは機能します。

ただし、問題は、そのテキストボックスのすべてのキーアップ時に送信ボタンが最初に有効になってから無効になることです。結局それは大丈夫です。しかし、HTML変数がnullであれば、すべてのキーアップに対して送信ボタンを有効にすることを取り除こうとしています。残りのコードは大丈夫です。 register-submit2は送信ボタンのIDです。誰も私を助けることができますか?

$(document).ready(function() { 
    $("#captcha").keyup(function(e) { 
    var captcha = $("#captcha").val(); 
    var datastring = 'captcha=' + captcha; 

    $.ajax({ 
     type: "POST", 
     url: "my_url/ErrorProcessing.php", 
     data: datastring, 
     success: function(html) { 
     if (html == "wrong text entered") { 
      $('#register-submit2').prop('disabled', 'true'); 
     } else { 
      $('#register-submit2').prop('disabled', 'false'); 
     } 
     } 
    }); 
    }); 
}); 
+0

を使用している場合はスキップすることができますか?キャプチャが正しいときだけ、それを可能にしますか? –

+0

私はthat.Butを試してみましたが、値が間違っていても、テキストボックスの送信ボタンのすべてのキーが有効になっています –

+0

あなたは 'console.log'のhtmlレスポンスを投稿できますか? –

答えて

3

true/falseを引用符なしで使用してください。文字列形式は真とみなされます。

$('#register-submit2').prop('disabled', false); 

それとも、デフォルトのボタンを無効にしないのはなぜ

$('#register-submit2').prop('disabled', html == "wrong text entered"); 
+0

ありがとうございました。 –

関連する問題