Javascript 为什么当我的输入为空时,$(…).val()==”为false?
当输入元素中没有任何内容时,我想删除一个类,就像在Google中,当您的搜索输入为空时,它不会显示建议 我已经试过了,但不起作用:Javascript 为什么当我的输入为空时,$(…).val()==”为false?,javascript,jquery,Javascript,Jquery,当输入元素中没有任何内容时,我想删除一个类,就像在Google中,当您的搜索输入为空时,它不会显示建议 我已经试过了,但不起作用: $(".sc").keyup(function() { var x = $(this).val(); $.post("search.php", { search: x }, function(checkSearch) { if (x == "") { $(".search").removeClass("searchOn");
$(".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");
}
});
});
如何修复它?ifx==捕获空字符串,而不是null
尝试使用if!相反,x会查看x是否为null、未定义或空字符串。如果要检查输入是否为null或未定义,请与此值进行比较。如果您这样做,则空字符串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);
}
});
我已经解决了
我应该使用===而不是==
不为空。这是一个空字符串。x==不会捕获null或未定义。请参阅$.search.removeclassearchon;这也是一个逻辑错误。如果在存在空字符串时不想删除类,则删除空的可能副本fails@F.bernal询问者明确表示,当输入为空时,他希望删除它。
$(".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");
}
});