繁体   English   中英

当我的输入为空时,为什么$(…).val()==“”为假?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM