0
votes

Pourquoi est $ (...) .val () == "" Faux lorsque mon entrée est vide?

Je veux supprimer une classe lorsque rien n'est à l'intérieur de l'élément d'entrée , comme dans Google, lorsque votre entrée de recherche est vide, il ne fera pas d'afficher des suggestions.

J'ai déjà essayé cela Mais cela ne fonctionne pas: xxx

Comment puis-je le réparer?


4 commentaires

'' n'est pas null. C'est une chaîne vide.


x == '' ne va pas attraper nul ou indéfini. voir Stackoverflow.com/Questtions/5515310/...


$ (". recherche"). Removeclass () ("Searchon"); est également une erreur logique. Retirez le vide ()


Dupliqué possible de jQuery: vérifier si la valeur de Un champ est null (vide)


3 Réponses :


1
votes

si (x == '' ') attrape des cordes vides, pas null.

Essayez d'utiliser si (! x) à la place (voit si x est null, une chaîne non définie ou vide).


2 commentaires

S'il ne veut pas supprimer la classe quand il y a une chaîne vide que le code échoue


@ F.Bernal L'Asker indique clairement qu'il veut le supprimer lorsque l'entrée est vide.



0
votes

Si vous souhaitez vérifier si l'entrée est null ou non définie, comparez simplement avec ces valeurs. Une chaîne vide (x = '') est évaluée à true si vous le faites! X. Donc, si vous voulez seulement vérifier, la valeur est null ou non définie, faites-la.

$(".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);

       }
});


0 commentaires

0
votes

je l'ai résolu J'aurais dû utiliser === au lieu de == xxx


0 commentaires