Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    617

    Filtrare tabella con jquery

    Salve, come da titolo stò creando un filtro per una tabella contenente tantissime righe.

    Ecco cosa ho prodotto:
    codice:
    $(".search").keyup(function () {
        if( $(this).val().replace(/ /g,'').length > 2) {
            //split the current value of searchInput
    var data = this.value.split(" ");
    //recupero la riga in cui cercare
    var row = $(this).data("match");
    //create a jquery object of the rows
    var jo = $(".rows").find("."+row+"-row");
    if (this.value == "") {
                jo.parent("tr").show();
    return;
    }
            //hide all the rows
    jo.parent("tr").hide();
    //Recusively filter the jquery object to get results.
    jo.parent("tr").filter(function (i, v) {
                var $t = $(this);
    for (var d = 0; d < data.length; ++d) {
                    if ($t.is(":contains('" + data[d] + "')")) {
                        return true;
    }
                }
                return false;
    })
                //show the rows that match.
    .show();
    }
        else if( $(this).val().replace(/ /g,'').length <= 2 ){
            $(".rows").find("tr").show();
    }
    });
    Di fatto il codice funziona ma mi crea uno spiacevole problema. Digitando i caratteri nell'input parte lo script ma essendo molto lunga la tabella da filtrare, la digitazione di blocca. Alla fine la tabella viene filtrata correttamente ma vorrei evitare questo blocco del cursore durante la ricerca, come posso fare?

    Grazie in anticipo !

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Probabilmente perché al keyup con almeno 2 caratteri parte la ricerca e senza un controllo per verificare se stai già ricercando o meno continua a cercare con la nuova keyword ad ogni lettera aggiuntiva. Probabilmente se lanci la ricerca sul click di un tasto aggiuntivo dovrebbe già migliorare. Oppure setta una variabile nel momento in cui parte la ricerca e quando a finito la riporti com'era e quindi sai di poter rilanciare la ricerca.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.