【问题标题】:Why is enabling and disabling a button not working?为什么启用和禁用按钮不起作用?
【发布时间】:2018-04-03 19:34:24
【问题描述】:

仅当用户在文本框中输入正确的验证码(显示为图像)值时,我才尝试为表单启用提交按钮。验证码是文本框的 id。

对于此文本框上的每个键,都会有一个 AJAX 请求,该请求将发送到一个名为 ErrorProcessing.php 的文件。然后它将提供一个 HTML 变量,该变量是 "wrong text entered"null。然后仅基于该值启用提交按钮。这行得通。

但是问题在于,对于该文本框上的每个键,提交按钮首先变为启用,然后变为禁用。最后没关系。但是,如果 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');
        }
      }
    });
  });
});

【问题讨论】:

  • 为什么不禁用默认按钮?只有当验证码正确时,才启用它?
  • 我已经尝试过了。但是即使值错误,文本框提交按钮上的每个键仍然启用
  • 你能console.log html 回复并在这里发布吗?
  • disabled 属性采用实际的布尔值,而不是字符串版本。非空字符串将被视为真。因此,您显示的代码永远不会启用该按钮。提供minimal reproducible example
  • 谢谢......

标签: javascript php jquery html forms


【解决方案1】:

使用不带引号的true/false。字符串形式会被认为是真的。

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

或者你可以跳过 if 使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多