[英]Why is $(…).val() == “” false when my input is empty?
我想在input
元素中什么都没有的情况下删除一个类,例如在Google中,当您的搜索输入为空时,它不会显示建议。
我已经尝试过了,但是没有用:
$(".sc").keyup(function() {
var x = $(this).val();
$.post("search.php", { search: x }, function(checkSearch) {
if (x == "") {
$(".search").removeClass("searchOn");
$(".search").html(checkSearch);
} else {
$(".search").html(checkSearch);
$(".search").addClass("searchOn");
}
});
});
我该如何解决?
if(x == '')
捕获空字符串,而不是null。
尝试改用if(!x)
(查看x是否为null,未定义或空字符串)。
如果要检查输入是否为空或未定义,则只需与此值进行比较即可。 如果执行!x,则空字符串(x ='')的计算结果为true。 因此,如果您只想检查该值是否为null或未定义,请执行此操作。
$(".sc").keyup(function ()
{
const x=$(this).val();
$.post('search.php',{search:x},function (checkSearch)
{
x === null || x === undefined
? $(".search").removeClass("searchOn")
: $(".search").addClass("searchOn")
$(".search").html(checkSearch);
}
});
我已经解决了它应该使用===
而不是==
$(".sc").keyup(function ()
{
var x=$(this).val();
$.post('search.php',{search:x},function (checkSearch)
{
if (x==='')
{
$(".search").removeClass("searchOn");
$(".search").html(checkSearch);
}
else {
$(".search").html(checkSearch);
$(".search").addClass("searchOn");
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.