B
blankito1998
Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
quiero que cuando deje un espacio en blanco deje de buscarEntiendo, si el código aún está buscando cuando el input solo tiene un espacio en blanco, necesitamos asegurarnos de verificar el contenido efectivamente antes de ejecutar la búsqueda.
Para garantizar que no se realicen búsquedas si el input está vacío o solo contiene espacios, podemos agregar una verificación adicional para el contenido del input antes de proceder con la búsqueda. Aquí te muestro cómo hacer los cambios necesarios:
### Código Modificado
JavaScript:$(document).ready(function () { var timeout; // Variable para el debounce $(".nawere").on("input", function () { clearTimeout(timeout); // Limpiar el timeout anterior var inputValue = $(this).val(); // Obtener el valor actual del input var dataid = $(this).attr("dataid"); // Verifica si el input está vacío o solo contiene espacios if (inputValue.trim() === "") { $(this).next(".intercomu").remove(); // Eliminar el intercomu si el input está vacío o solo con espacios return; } // Verifica si el input termina con "@" o un espacio if (inputValue.endsWith("@") || inputValue.endsWith(" ")) { $(this).next(".intercomu").remove(); // Eliminar el intercomu si termina con @ o espacio return; } // Busca coincidencias de "@" seguido de caracteres alfanuméricos var matches = inputValue.match(/@\w+/g); if (matches && matches.length > 0) { // Usar debounce para retrasar la ejecución timeout = setTimeout(() => { $(this).next(".intercomu").remove(); // Elimina solo el intercomu anterior asociado a este input $.get("../hola.php", {searpro: matches[matches.length - 1]}, function (data) { // Concatenar el resultado de la búsqueda con el mensaje $("<span class='intercomu' data-id='" + dataid + "'>Estás buscando " + matches[matches.length - 1] + " " + data + "</span>") .insertAfter($(this)); // Inserta después del input actual }.bind(this)); // Mantiene el contexto del input actual }, 300); // Ajustar el tiempo según sea necesario } else { // Si no hay coincidencias, elimina el intercomu $(this).next(".intercomu").remove(); } }); // Agregar un evento blur para remover el intercomu cuando el input pierde el foco $(".nawere").on("blur", function () { $(this).next(".intercomu").remove(); // Elimina solo el intercomu asociado a este input }); });
### Cambios Realizados
1. Verificación Adicional: Se añadió una verificación usandoinputValue.trim() === ""para asegurar que no se realice ninguna búsqueda si el input está vacío o solo contiene espacios. Esto evitará que el código continúe a la parte de la búsqueda si no hay un texto válido.
2. Eliminación deintercomu: Si el input está vacío o solo contienen espacios, el código eliminará el elementointercomuy saldrá antes de hacer cualquier otra acción.
Este ajuste debería impedir que el código procure realizar una búsqueda cuando el input no tiene un valor significativo. Si sigues teniendo problemas, por favor proporciona más detalles sobre el comportamiento esperado y cualquier mensaje de error que puedan aparecer. ¡Estoy aquí para ayudar!