我在基于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);
}
});
});
答案 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);
});
这将做同样的事情。最初按钮被禁用,输入后会启用它。