为什么启用和禁用按钮不起作用?

我正在尝试仅在用户输入正确的验证码时启用表单的提交按钮(显示 作为图像)文本框内的值。 captcha是文本框的id。 </ p>

对于此文本框中的每个键,都会有一个AJAX请求被发送到一个名为ErrorProcessing.php的文件。然后它将提供一个HTML变量,它是“ 错误的文字输入“</ code>或 null </ code>。 然后,仅基于该值启用提交按钮。 这有效。 </ p>

但问题是,对于该文本框的每个键,提交按钮首先启用,然后变为禁用。 最后还可以。 但是,如果HTML变量是 null </ code>,我试图摆脱为每个键启用提交按钮。 其余代码没问题。 register-submit2 </ code>是提交按钮的ID。 任何人都可以帮助我吗?</ p>

  $(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 ==“输入错误的文字”){
$(' #register-submit2')。prop('disabled','true');
} else {
$('#register-submit2')。prop('disabled','false');
} \ n}
});
});
});
</ code> </ pre>
</ div>

展开原文

原文

I am trying to enable a submit button for a form only if the user has input the correct captcha (which is displayed as a image) value inside a textbox. captcha is the id of the textbox.

For each key up on this textbox there will be an AJAX request which is sent to a file called a ErrorProcessing.php.Then it will provide a HTML variable which is either "wrong text entered" or null. The submit button then gets enabled only based on that value. This works.

However the problem is that for every key up on that textbox submit button first becomes enabled and then becomes disabled. In the end it is okay. But I am trying to get rid of the enabling the submit button for every key up if the HTML variable is null. The rest of the code is okay. register-submit2 is the id of the submit button. Can any one help me?

$(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');
        }
      }
    });
  });
});

drw85135
drw85135 谢谢.............
接近 3 年之前 回复
dsfds2353
dsfds2353 disabled属性采用实际的布尔值,而不是字符串版本。非空字符串将被视为true。所以你所看到的代码永远不会启用按钮。提供最小可重复的示例
接近 3 年之前 回复
dongzhuan1185
dongzhuan1185 你可以在console.log中找到html响应并在这里发布吗?
接近 3 年之前 回复
dongqiang2024
dongqiang2024 我已经尝试过了。但是仍然为文本框提交按钮上的每个键都启用,即使值是错误的
接近 3 年之前 回复
doucepei5298
doucepei5298 为什么不在默认情况下禁用按钮?只有当验证码正确时,启用它?
接近 3 年之前 回复

1个回答



使用 true / false </ code>不带引号。 字符串形式将被视为真。</ p>

  $('#register-submit2')。prop('disabled',false); 
</ code> </ pre >

或者您可以跳过if使用</ p>

  $('#register-submit2')。prop('disabled',html ==“错误 输入的文字“); 
</ code> </ pre>
</ div>

展开原文

原文

Use true/false without quotes. String form will be considered as true.

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

Or you can skip the if using

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

duanlun4411
duanlun4411 谢谢 ...........
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐