Tengo algunos campos de búsqueda en una página. Al presionar 'ingresar', cualquier cosa en estos campos se filtrará para un conjunto de datos que se muestra en una tabla.
$("document").on('keyup', (e) => { if (e.keyCode === 13) { searchAndDraw(); } }); Mi problema es que tengo una table #myTable con algunas áreas de textareas en td s. Presionar 'enter' dentro de un área de texto también activa la búsqueda ya que la tabla está dentro del documento.
¿Cómo puedo aplicar este evento keyup al documento pero excluir #myTable ?
$("document:not(#tliId)").on('keyup'... pero eso no funciona.
Puede apuntarlo para usar enter en las entradas y excluir el área de texto
$(document).on('keyup', ":input:not(textarea)", (e) => { if (e.key === "Enter") { console.log("Enter"); } }); label { display: block; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <label></label><input /> <label></label><textarea></textarea> <label></label><textarea></textarea> <label></label><input />Si no desea que la entrada esté enfocada y pueden presionar Intro en cualquier lugar, puede verificar si el objetivo es un área de texto o no.
$(document).on('keyup', (e) => { if (e.key === "Enter" && !$(e.target).is('textarea')) { console.log("Enter"); } }); label { display: block; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <label></label><input /> <label></label><textarea></textarea> <label></label><textarea></textarea> <label></label><input />