• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] onkeypress

pfcrime

New member
Hi, ich bin Anfänger was js angeht.

Ich möchte mit onkeypress ein bild erscheinen lassen.
wie bekomme ich das hin?
 
sollte so funktionieren:

Code:
<div id="demo"></div>
<input type="text" onkeypress="myFunction()">

<script>
function myFunction() {
 document.getElementById("demo").innerHTML = "<img src='mein-bild.jpg' alt='bild'>";   
}
</script>
 
ok aber das ist jetzt in html eingebunden oder?
wie muss ich das schreiben wenn ich es in eine extra js datei auslagern möchte?
 
ok aber das ist jetzt in html eingebunden oder?
ja

- - - Aktualisiert - - -

wie muss ich das schreiben wenn ich es in eine extra js datei auslagern möchte?
so:
Code:
<script src="./keyup.js"></script>
<div id="demo"></div>
<input type="text" onkeypress="myFunction()">

und die "keyup.js" sieht dann so aus:

Code:
function myFunction() {
 document.getElementById("demo").innerHTML = "<img src='mein-bild.jpg' alt='bild'>";   
}
 
ok das hat geklappt aber ich habe gedacht mit "onkeypress" macht es die funktion nur so lange eine taste gedrückt wird?

oder geht das nur im zusammenhang mit "onkeyup"?
 
ok das heißt ich muss noch eine Funktion schreiben die das Bild mit ounkeyup wieder verschwinden lässt? ich würde das jetzt mit neu laden der Seite machen oder gibt es da eine andere Möglichkeit?
 
ok das heißt ich muss noch eine Funktion schreiben die das Bild mit ounkeyup wieder verschwinden lässt?
Genau.

An Beitrag #2 angelehnt also so:
Code:
<div id="demo"></div>
<input type="text" onkeypress="myFunction()" onkeyup="mySecondFunction()">

<script>
function myFunction() {
 document.getElementById("demo").innerHTML = "<img src='mein-bild.jpg' alt='bild'>";   
}
function mySecondFunction() {
 document.getElementById("demo").innerHTML = "";   
}
</script>
 
Ich würde ja sowas nicht mit innerHTML machen, sondern das <img> schon von Anfang an im HTML haben, mit CSS ausblenden (display: none) und dann mit JS nur das .style.display auf "inline" setzen. Dann wird das Bild sofort angezeigt und muss nicht erst geladen werden.

PS: onkeypress feuert jedes mal, wenn ein Buchstabe geschrieben werden würde. Also auch öfters, wenn man die Taste gedrückt hält.
 
Ich würde ja sowas nicht mit innerHTML machen, sondern das <img> schon von Anfang an im HTML haben, mit CSS ausblenden (display: none) und dann mit JS nur das .style.display auf "inline" setzen. Dann wird das Bild sofort angezeigt und muss nicht erst geladen werden.

sehr gute Idee, ich dachte nur das würde ggf. für den Frager zu schwierig sein.
 
Zurück
Oben