Don P: Ein Problem mit Javascript

Beitrag lesen

Hallo,

Ich hab hier mal den code, den ich bisher erstellt habe.

Ok. Mit dem Code willst du anscheinend ehr machen, als verlangt wird. Es wird eine JavaScript Funktion verlangt, von einem Formular z.B. ist nicht die Rede, streng genommen nicht mal von einem kompletten HTML-Dokument.

Gehen wir's mal schrittweise durch:

"Erstellen Sie in JavaScript eine Funktion functiondialog

Das ist einfach, hast du ja schon hinbekommen:

function functiondialog(){}

mit folgendem Verhalten:
Wird functiondialog mit einem Paramenter f aufgerufen, der eine Funktion ist,

Auch das Entgegennehmen eines Parameters f hast du schon:

function functiondialog(f) {
  // hier musst du erst mal [ref:self812;javascript/sprache/operatoren.htm#typeof@title=überprüfen], ob f auch eine Funktion ist:
 if(typeof f === 'function') {}
}

  

> dann wird ein HTML-Eingabefeld erzeugt, in das man Werte x eintippen kann,  
  
Das muss also innerhalb des if-Blocks geschehen. Zum Erzeugen eines HTML-Eingabefelds gibt es allerdings mehrere Möglichkeiten. Eine davon ist, wie du im Prinzip richtig erkannt hast, zunächst mal eine Zeichenkette zu bauen, die entsprechendes HTML enthält:  
  
~~~javascript
function functiondialog(f) {  
  
 if(typeof f === 'function') {  
  
   var htmlString = '<input type="text" value=""></input>';  
 }  
}  

Jetzt muss aber diese Zeichenkette noch ins HTML-Dokument eingebaut werden.
Im HTML-Dokument (document) liegt u.a. ein Element body mit seinem Inhalt, und dessen Eigenschaft namens innerHTML kann man so eine Zeichenkette zuweisen:

function functiondialog(f) {  
  
 if(typeof f === 'function') {  
  
   var htmlString = '<input type="text"></input>';  
   document.body.innerHTML = htmlString;  
 }  
}  

Damit ist das Eingabefeld im Dokument verfügbar, und man kann sogar etwas eingeben.

woraufhin der Wert f(x) in einem div-Feld angezeigt wird."

Das ist jetzt nicht mehr ganz trivial: Nach der Eingabe soll auch noch etwas geschehen mit dem eingegebenen Wert.

Dazu muss man erst mal feststellen, ob bzw. wann überhaupt etwas eingegeben wurde. Ist das der Fall nach jedem Tastendruck? Oder erst wenn man irgendwo ausßerhalb vom Eingabefeld klickt? Oder erst wenn man einen Button klickt? Es steht z.B. nichts von einem Formular oder Button in der Aufgabenstellung, daher würde ich beides weglassen die Eingabe für abgeschlossen halten, nachdem das Eingabefeld verlassen bzw. geändert wurde (http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange@title=onchange) ...

Gruß, Don P