Input Auto-Vervollständigung Funktionsparameter

strukturart

Erfahrenes Mitglied
Hallo,

Ich arbeite gerade an einer Suchfunktion innerhalb einer Tabelle, wird ein Suchbegriff gefunden wird die Zeile ausgeblendet.

Code:
    function customer_filter() {
        var value = $("#customer").val();

        $("table tr:visible").each(function(index) {
            if (index !== 0) {
                $row = $(this);

                var id = $row.find("td:nth-child(7)").text()
                console.log(id + "/" + value)
                if (id.indexOf(value) != -1) {
                    $row.css("display", "table-row");
                } else {
                    $row.css("display", "none");
                }

            }
        });
    }



Der Suchbegriff kommt von einem Autovervollstädigung Input Feld.


Code:
    function buildAutocomplete(element, source, param) {
        $(element).autocomplete({
            lookup: source,
            minChars: 1,
            triggerSelectOnValidInput: false,
            showNoSuggestionNotice: true,
            lookupLimit: 5,

            onSearchStart: function() {
                //alert("search start")

            },
            onSearchError: function(query, jqXHR, textStatus, errorThrown) {
                //alert(query)
            },
            onSelect: function(suggestion, onselect) {
                param

                lang = suggestion.data;
                $('element').autocomplete('disable');

            },

            onSearchComplete: function(query, suggestions) {

                //alert(query.length)


            }
        });
    }


    buildAutocomplete("#customer", customers_list, customer_filter)

Ich möchte das Filter erst ausgeführt wird wenn der vorgeschlagene Suchbegriff ausgewählt wurde,
jedoch klappt das mit dem übergeben der Funktion als Parameter nicht.

Was mache ich falsch ?
 
Du musst die Funktion auch ausführen, indem Du ein Klammernpaar hinter dem Namen notierst:
Code:
            onSelect: function(suggestion, onselect) {
                param();
 
Ein Linting-Programm hätte dir das Warnung gemeldet à la "unnützes Statement `param`, da seiteneffektfrei" :) Das lohnt sich bei kleinen Spielereien noch nicht, aber bei jedem größeren Projekt echt hilfreich.*

*) und manchmal auch nervtötend, wenn zu strikt eingestellt oder jemand die Konfiguration strikter einstellt ;)
 
Zurück