1

我无法根据 jQuery 中的 if/else 语句启用和禁用按钮。这里的问题是,当文本输入处于焦点时,按钮会立即启用。代码似乎忽略了 if 语句中的参数。显然,这不是我想要制作的应用程序,但我编写了这段代码来测试网站的一部分不工作。有什么建议么?

这是HTML

<input type="text" id="type_here" />
<input type="button" id="test_button" value="test" disabled/>

这是Javascript

$(document).ready(function () {
    $(document).click(function () {
        if ($('#type_here').val !== "") {
            $('#test_button').prop('disabled', false);
        } else {
            $('#test_button').prop('disabled', true);
        }
    }).keyup(function () {
        if ($('#type_here').val !== "") {
            $('#test_button').prop('disabled', false);
        } else {
            $('#test_button').prop('disabled', true);
        }
    });
});
4

2 回答 2

3

尝试这个:-

你使用.val而不是.val() .val 总是会返回函数引用而不是函数的结果。所以你的陈述永远是正确的。

   $(document).ready(function () {
    $(document).click(function () {
            $('#test_button').prop('disabled', $('#type_here').val() === "");
    }).keyup(function () {
           $('#test_button').prop('disabled', $('#type_here').val() === "");
           });
});
于 2013-05-05T17:26:51.807 回答
0
$('#type_here').on('keyup change',function(){
  if($(this).val().length == 0)
     $('#test_button').prop('disabled', true);
  else
     $('#test_button').prop('disabled', false);
});

这将做同样的事情。最初按钮被禁用,在输入某些内容后它将被启用。

演示

于 2013-05-05T17:27:28.583 回答