jQuery prop不能作为if语句的一部分

时间:2013-05-05 17:23:09

标签: jquery prop

我在基于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);
        }
    });
});

2 个答案:

答案 0 :(得分: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() === "");
           });
});

答案 1 :(得分:0)

$('#type_here').on('keyup change',function(){
  if($(this).val().length == 0)
     $('#test_button').prop('disabled', true);
  else
     $('#test_button').prop('disabled', false);
});

这将做同样的事情。最初按钮被禁用,输入后会启用它。

demo