Themm: Wie lässt sich onTextChanged realisieren??

Hi, ¦]
ich suche einen Javascript-Befehl, mit dem man Submits submit() während der Texteingabe in ein Textfeld <input> machen kann, um Suchvorschläge zu generieren und mein Wissen für späteres Arbeiten mit PHP und Javascript zu erweitern.

  1. Om nah hoo pez nyeetz, Themm!

    ich suche einen Javascript-Befehl, mit dem man Submits submit() während der Texteingabe in ein Textfeld <input> machen kann, um Suchvorschläge zu generieren

    Das ist mit einem Befehl nicht zu erreichen. Du musst bei jeder Änderung des Textes im input-Element (onchange) den Text mit Einträgen in einer Datenbank (einfachster Fall ein Array) vergleichen und entscheiden, welche und wieviele Einträge du anzeigen möchtest.

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. Derzeit benutze ich ja onchange, das Problem ist nur, dass man erst irgendwohin drücken / klicken muss. Dass soll nach anwählen des Textfeldes automatisch passieren.

  2. Tach!

    ich suche einen Javascript-Befehl, mit dem man Submits submit() während der Texteingabe in ein Textfeld <input> machen kann, um Suchvorschläge zu generieren und mein Wissen für späteres Arbeiten mit PHP und Javascript zu erweitern.

    Was willst du da submitten? Das Formular, in das der Anwender gerade eintippt? Das ist kontraproduktiv. Aber <input onchange=...> gibt es schon ewig und im Hintergrund Requests absetzen geht mit Ajax.

    dedlfix.

    1. Was willst du da submitten? Das Formular, in das der Anwender gerade eintippt? Das ist kontraproduktiv. Aber <input onchange=...> gibt es schon ewig und im Hintergrund Requests absetzen geht mit Ajax.

      Das Problem ist, dass während der Eingabe der Wert umgewandelt werden soll.

      1. Tach!

        Was willst du da submitten? Das Formular, in das der Anwender gerade eintippt? Das ist kontraproduktiv. Aber <input onchange=...> gibt es schon ewig und im Hintergrund Requests absetzen geht mit Ajax.

        Das Problem ist, dass während der Eingabe der Wert umgewandelt werden soll.

        Und? Mit onchange kannst du auf Änderungen reagieren. Du kannst diesen Wert dann "umwandeln" - was auch immer du da machen willst - und dann den neuen Wert schreiben. Vor dem Schreiben ein Flag setzen, welches das beim Ändern auftretende onchange auswerten kann und dann nichts macht, sonst gibt es eine Endlosschleife.

        dedlfix.

      2. Was willst du da submitten? Das Formular, in das der Anwender gerade eintippt? Das ist kontraproduktiv. Aber <input onchange=...> gibt es schon ewig und im Hintergrund Requests absetzen geht mit Ajax.

        Das Problem ist, dass während der Eingabe der Wert umgewandelt werden soll.

        Du suchst wahrscheinlich sowas:

          
        function enableInputChangeAfterKeyup(element) {  
            function trigger() {  
                var event;  
                this.timeout = false;  
                if (this.element.value !== this.value) {  
                    event = document.createEvent('HTMLEvents');  
                    event.initEvent('change', false, true);  
                    this.element.dispatchEvent(event);  
                    this.value = this.element.value;  
                }  
            }  
            function keyup() {  
                this.timeout && window.clearTimeout(this.timeout);  
                this.timeout = window.setTimeout(trigger.bind(this), this.delay);  
            };  
            if (typeof element === 'string') {  
                element = document.getElementById(element);  
            }  
            element.addEventListener('keyup', keyup.bind({  
                element  : element,  
                value    : element.value,  
                delay    : Math.max(100, Math.min(750, enableInputChangeAfterKeyup.delay)),  
                timeout  : false  
            }), false);  
        }  
        // Verzögerung in Millisekunden bevor der change Event getriggert wird  
        enableInputChangeAfterKeyup.delay = 250;  
          
        // Beispiel: Verhalten für input[text] element mit id "search" aktivieren  
        enableInputChangeAfterKeyup('search');