/ / JQuery, pourquoi cela ne montre-t-il pas le bouton une fois que l'entrée est remplie? - javascript, jquery

JQuery, Pourquoi n’a-t-il pas affiché le bouton une fois la saisie complétée? - javascript, jquery

J'essaie d'afficher / masquer un bouton lorsque l'entrée qui lui est associée est vide (barre de recherche dans ce cas).

J'utilise ce Javascript:

if(!$(".sb-search-input").val()){
$(".sb-search-submit.button-search").hide();
}
else {
$(".sb-search-submit.button-search").show();
}

et mon HTML:

            <div id="sb-search" class="sb-search">
<form>
<input class="sb-search-input" placeholder="Szukaj..." type="search" value="" name="search" id="search" onkeyup="buttonUp();" required>
<input class="sb-search-submit button-search" type="button" value="">
</form>
</div>

La recherche de bouton sb-search-submit est toujours désactivée et n'est pas activée lorsque sb-search-input a une valeur.

Réponses:

3 pour la réponse № 1

Essayez d'utiliser input un événement ; e.target.value.length === 0 à if état; .trigger() appeler input gestionnaire d'événements $(document).ready() alias $(function() {})

$(function() {
$(".sb-search-input").on("input", function(e) {
if (e.target.value.length === 0) {
$(".sb-search-submit.button-search").hide();
} else {
$(".sb-search-submit.button-search").show();
}
}).trigger("input")
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="sb-search" class="sb-search">
<form>
<input class="sb-search-input" placeholder="Szukaj..." type="search" value="" name="search" id="search" required>
<input class="sb-search-submit button-search" type="button" value="">
</form>
</div>