snoot: Beim Verlassen von <input> Funktion ausführen

Hi,

ich habe eine Funktion, die dynamisch beim Auswählen aus einer <select>-Liste den aktuellen <option>-Wert übergibt und so bspw. Text auf der Seite in einem <span> direkt ändert.

Jetzt hätte ich das ganze gerne so, dass ich nicht einen Wert aus einer <select>-Liste übergebe, sondern den Wert eines <input>-Feldes beim Verlassen desselbigen.

Für die <select>-Liste sieht das ganze so aus:

  
$(document).ready(function()  
{  
	$("#select_id").change(function()  
	{  
		var id_kategorie=$(this).children('option:selected').val();  
		$("#span_id").load("script.php",{value: id_kategorie});  
	});  
});

#select_id ist die Liste, beim Auswählen einer Option wird der jew. Wert an script.php übergeben und dadurch wiederum ein Text in <span #span_id> dynmisch geändert.

Ich will jetzt quasi statt option:selected --> input.blur. Kann mir jemand verraten, wie das funktioniert? Wenn ich diesen Code direkt so ersetze reagiert das Script zwar schon korrekt auf das Verlassen, aber es kommt in script.php nur 'undefined' an und nicht das, was eingegeben wurde.

Danke

  1. Hallo,

    Ich will jetzt quasi statt option:selected --> input.blur.

    Nein, du willst bestimmt onchange den value des Textfeldes direkt verwerten, und nicht wie beim Selectfeld den value eines seiner Kinder.
    Also must du nur die Zeile anpassen, in der id_kategorie zugewiesen wird, d.h. dort einfach den value des Inputfeldes zuweisen.

    Gruß, Don P

    1. Nein, du willst bestimmt onchange den value des Textfeldes direkt verwerten, und nicht wie beim Selectfeld den value eines seiner Kinder

      Hehe, so einfach, danke :)

      Dass das mit child nicht sein kann dachte ich mir schon, aber ich war so auf blur fixiert, dass ich's immer damit probiert habe.

      1. Nein, du willst bestimmt onchange den value des Textfeldes direkt verwerten, und nicht wie beim Selectfeld den value eines seiner Kinder

        Hehe, so einfach, danke :)

        Dass das mit child nicht sein kann dachte ich mir schon, aber ich war so auf blur fixiert, dass ich's immer damit probiert habe.

        So, 'blur' war doch nicht ganz verkehrt. Solange man die Tastatur zur Eingabe benutzt klappt das mit 'change' noch wunderbar. Aber wenn man nur mit der Maus einen im Browser gespeicherten Wert im Eingabefeld anklickt, dann reagiert das Script nicht darauf. Somit sieht das ganze jetzt so aus:

        $(document).ready(function()  
        {  
                $("#select_id").blur(function()  
                {  
                        var id_kategorie=$(this).val();  
                        $("#span_id").load("script.php",{value: id_kategorie});  
                });  
        });  
        
        
        1. Hallo,

          Aber wenn man nur mit der Maus einen im Browser gespeicherten Wert im Eingabefeld anklickt, dann reagiert das Script nicht darauf.

          Natürlich nicht. Der onchange-Handler feuert nur, wenn sich der Feldinhalt geändert hat – on*change* eben. Das reicht ja auch meistens. Es ist nicht leicht einzusehen, warum ein Script neue alte Daten vom Server holen soll, nur weil man man mal zwischendurch in ein Textfeld geklickt und es unverändert wieder verlassen hat. Für solches Verhalten sind Buttons vorgesehen.

          Gruß, Don P

          1. Natürlich nicht. Der onchange-Handler feuert nur, wenn sich der Feldinhalt geändert hat – on*change* eben. Das reicht ja auch meistens. Es ist nicht leicht einzusehen, warum ein Script neue alte Daten vom Server holen soll, nur weil man man mal zwischendurch in ein Textfeld geklickt und es unverändert wieder verlassen hat. Für solches Verhalten sind Buttons vorgesehen.

            Gruß, Don P

            Unverändert bleibt es ja nicht. Das ganze soll dazu dienen während der Eingabe (bzw. eben beim Verlassen des Feldes nach der Eingabe) den Inhalt auf Korrektheit zu prüfen.