textfeld erstellen - <input type="text">

Status
Nicht offen für weitere Antworten.
ich möchte das das script, wenn es aufgerufen wird, mir ein textfeld erzeugt. doch ich komme mit dem code nicht so ganz klar.

PHP:
function neues_textfeld(t)
{
	var feld = document.createElement('input');
	feld.type = 'text';
	document.alert(t);
}
 
Die Zuweisung des type-Attributes kannst du dir sparen, bei inputs ist "text" der Standardwert.

Wenn du willst, dass das Textfeld auch zu sehen ist, musst du es in das Dokument einfügen, bspw. per appendChild()
 
Ich habe jetzt das zusammen und da kommt dann auch ein textfeld bei raus.
PHP:
<html><head><title>Test</title></head>
<body>
<ol id="neu">
<li>E</li>
</ol>
<script type="text/javascript">

document.getElementById("neu").removeChild(document.getElementById("neu").firstChild);

  var feld = document.createElement("input");
  document.getElementById("neu").appendChild(feld);
  
</script>
</body></html>
Doch bei mir soll das script ja extern liegen, also hab ich das ganze html und script type nicht drin. aber wie bekomme ich dann das dort rein, denn anscheinend geht es nicht ohne (hab zumindest ich so verstanden)
PHP:
<ol id="neu">
<li>E</li>
</ol>
muss ich dem script auch noch sagen, wo er das textfeld anlegen soll oder kommt das da hin wo der scriptaufruf war?
 
Doch bei mir soll das script ja extern liegen, also hab ich das ganze html und script type nicht drin. aber wie bekomme ich dann das dort rein, denn anscheinend geht es nicht ohne (hab zumindest ich so verstanden)

Auch wenn du das Javascript in eine eigene Datei auslagerst, musst du es ja einbinden und dabei wird auch der Script-Typ angegeben.

HTML:
<script type="text/javascript" src="meinejsdatei.js"></script>


muss ich dem script auch noch sagen, wo er das textfeld anlegen soll oder kommt das da hin wo der scriptaufruf war?

Genau das macht doch appenchild.


Gruß

.:lay-z-cow:.
 
das meinte ich nicht.
PHP:
<script type="text/javascript" src="meinejsdatei.js"></script>

ich meinie, das ich dieses brauche
PHP:
getElementById("neu")
doch damit das funktioniert, brauche ich
PHP:
<ol id="neu">
<li>E</li>
</ol>
aber ich habe
PHP:
echo'<input type="text" name="vornameneu[]" onfocus="this.value=neues_textfeld()" />';

also wie verbinde ich diese beiden nun. da ja das script dummerweise eine id braucht. denn ohne bekomme ich es net hin.
wie verbinde ich diese beiden?
PHP:
<ol id="neu">
<li>E</li>
</ol> 

echo'<input type="text" name="vornameneu[]" onfocus="this.value=neues_textfeld()" />';
 
Hi!

Ich hoff ich hab dich jetzt nicht falsch verstanden, aber warum machst du es nicht eifach so:
PHP:
<html><head><title>Test</title></head>
<body>
<div id='contain'></div>

<script type="text/javascript">
var string="<ol id='neu'><input type='text' value='so?'></ol>";
document.getElementById('contain').innerHTML = string;

</script>
</body></html>

// EDIT

Jetzt weiß ich (glaub ich) was du meinst...! :)

Versuchs doch damit!

PHP:
<html><head><title>Test</title></head>
<body onload="menu();">
<script>
function menu(){
  var string="<input type='text' name='vornameneu[]' onfocus='this.value=neues_textfeld()'>";
  document.getElementById("neu").innerHTML=string;
  }
</script>

<ol id='neu'></ol>
</body></html>
 
Zuletzt bearbeitet:
Ja das meine ich nur habe ich jetzt wieder das gleiche problem. Dort wo die funktion aufgerufen wird und dort wo die funktion steht ist in ein und der selben datei, bei mir sind das 2 unterschiedliche dateien

ich habe 2 dateien.
anlegen.php -> funktionsaufruf
javascript.js -> funktion selber

in anlegen.php rufe ich die funktion neues_textfeld() auf

PHP:
<html> 
<head> 
<title>Hello world</title>
<script src="javascript.js" type="text/javascript"></script>
 </head> 
<body>
<?php
		echo '<form action="bearbeiten.php" method="post">';
// Daten neu anlegen
		echo'<ol id="neu"><input type="text" name="vornameneu[]" onfocus="this.value=neues_textfeld()"/><br />';
// Daten abschicken
		echo '<input type="submit" />';
		echo '</form>';  
		?>
</body>
</html>

die Funktion selber steht in javascript.js
PHP:
function neues_textfeld()
{
	document.getElementById("neu").removeChild(document.getElementById("neu").firstChild);
	var feld = document.createElement("input");
	document.getElementById("neu").appendChild(feld);
}
ich bekomme aber jedesmal, wenn ich in das Textfeld klicke die Meldung:

document.getElementById(...)ist Null oder kein objekt

die funktion soll nichts anderes machen, als: ...wenn ich in das textfeld in der anlegen.php klicke (input type="text" name="vornameneu[]") soll die funktion aufgerufen werden und mir ein neues input feld (input type="text") erstellen.
 
Ich hab das Script bei mir ausprobiert und funktioniert unter Opera und IE...
Ich weiß nicht warum bei dir ne Fehlermeldung kommt...?
 
Ich habe es ja auch mit einer externen datei, in der die Funktion liegt getestet!
Genauso, wie du es am 30.11.07 um 16:44 Uhr gepostet hast!
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück