/ / JQuery, ¿Por qué no muestra el botón una vez que se completa la entrada? - javascript, jquery

JQuery, ¿Por qué esto no muestra el botón una vez que se completa la entrada? - javascript, jquery

Estoy tratando de mostrar / ocultar un botón cuando la entrada asociada con él está vacía (barra de búsqueda en este caso).

Estoy usando este Javascript:

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

y mi 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>

El botón de búsqueda sb-search-submit siempre está deshabilitado y no se habilita cuando sb-search-input tiene un valor.

Respuestas

3 para la respuesta № 1

Tratar de utilizar input evento e.target.value.length === 0 a if condición; .trigger() llamar input controlador de eventos en $(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>