[JavaScript] Inhalt von Textfeld übergeben

atlan428

Well-known member
ID: 43536
L
13 Mai 2006
269
10
Wie kann ich per Javascript den Inhalt eines Textfeldes beim Schreiben direkt an eine Javascript-Funktion übergeben lassen? Mein Code sieht wie folgt aus:

PHP:
echo "<input type='text' name='Name' value='".$Name."' onKeyup='teste(document.form.Name.value())'> <span id='Name'></span>";

Beim Eintragen in das Textfeld "Name" soll der aktuelle Inhalt an die Funktion "teste" übergeben werden. Leider bekommt die Funktion mit dem obenstehenden Code kein Inhalt. Folgender Code geht aber richtig:

PHP:
echo "<input type='text' name='Name' value='".$Name."' onKeyup='teste(\"test\")'> <span id='Name'></span>";

Ich will aber nicht das Wort "test" an die Funktion übergeben, sondern den Inhalt von der Textbox "Name". Was mache ich falsch?

PS:
Die Form, wo der Textfeld drinnen ist, heißt "form"!
 
probier mal folgendes, sollte gehen

PHP:
echo "<input type='text' name='Name' value='".$Name."' onKeyup='teste(\"this.value\")'> <span id='Name'></span>";
 
Das habe ich gerade auch getestet. Aber leider funktioniert das nicht. :( Es könnte eventuell noch an der Funktion selbst liegen. Hier ist mal der Code:

Code:
function teste(wert)
{
	ajax.open('GET', 'ajax.php?wert='+wert);
}
 
Das habe ich gerade auch getestet. Aber leider funktioniert das nicht. :( Es könnte eventuell noch an der Funktion selbst liegen. Hier ist mal der Code:

Code:
function teste(wert)
{
	ajax.open('GET', 'ajax.php?wert='+wert);
}

Was ist ajax? XMLHttpRequest ausgeführt?

Beispiele siehe https://de.wikipedia.org/wiki/XMLHttpRequest

Kannst ja testen, ob die Funktion überhaupt aufgerufen wird, indem du mal z.B. ein alert() einbaust.
 
das müsste das Prototype Framework sein.
Installier dir doch mal in den Firefox und dazu die "Firebug"-Extension, dann kannst du ganz schön sehen, ob und was an den Server gesendet wurde.

Ach ich sehe gerade das kann ja gar net gehen, du brauchst doch noch den Befehl zum Absenden des Request, send() oder so ähnlich heisst der, am besten suchst du dir mal ein Tutorial zu Ajax mit Prototype raus.
 
probier mal folgendes, sollte gehen

PHP:
echo "<input type='text' name='Name' value='".$Name."' onKeyup='teste(\"this.value\")'> <span id='Name'></span>";
Sorry, aber das ist doch Käse. Wenn der Wert des Inputs übergeben werden soll, bringt es nichts, den String "this.value" zu übergeben. Das muss schon die Variable this.value sein.

Also:
PHP:
 echo 'input type="text" name="Name" value="'.$Name.'" onkeyup="teste(this.value);">'; // etc pp

[edit]

Und ich bezweifel mal, dass das was mit Prototype zu tun hat - das Framework hat nämlich keine einzige open()-Methode. ;)

Siehe :arrow: https://www.sergiopereira.com/articles/prototype.js.html
 
Zuletzt bearbeitet:
Vielen Dank für eure Hilfen. Ich habe jetzt beide Fehler entdeckt:

1) So muss die Übergabe aussehen:
PHP:
echo 'input type="text" name="Name" value="'.$Name.'" onkeyup="teste(this.value);">';

2) Ich hatte vergessen, die Feld-ID für die Antwort zu übergeben.

PS:
Auf den zweiten Fehler bin ich dank Firebug gekommen! ;)