formular mit java-skript erweitern (inputs hinzufügen)
kleinerChemiker 07.06.2005 - 10:56 743 9
kleinerChemiker
Here to stay
|
ich würde ein js suchen, das mir in einem formula input's hinzufügt, wenn man auf nen link/button/wwi klickt. ambesten gleich mit tr/td, aber das dürfte dann ja leicht zum ändern sein.
google hat bis jetzt nix brauchbares ausgespuckt.
tia
MIK
Bearbeitet von kleinerChemiker am 08.06.2005, 12:57
|
mat
AdministratorLegends never die
|
ist sicher nicht das was du hören willst..
warum versuchst dus nicht mal und konfrontierst uns dann mit einer spezifischeren frage?
|
kleinerChemiker
Here to stay
|
gedanken dazu hab ich mir eh gemacht, nur leider kenn ich mich mit js kaum aus. mittlerweile, nachdem ich in gedanken die seite zig mal umgearbeitet hab, bin ich sogar auf ne idee gekommen, die aber leider nicht funzt. <html>
<head>
<titel>huh</titel>
<script type="text/javascript">
function addinput() {
document.getElementById("addinput").writeln("<input name=\"zuname\" type=\"text\" size=\"30\" maxlength=\"40\"><br>");
}
</script>
</head>
<body>
<form action="input_text.htm">
<p>Vorname:<br>
<input name="vorname" type="text" size="30" maxlength="30">
</p>
<p>Zuname:<br>
<div id="addinput"><input name="zuname" type="text" size="30" maxlength="40"><br></div>
</p>
<a href="" onclick="addinput()">klick mich</a>
</form>
</body>
</html>
tia MIK
Bearbeitet von watchout am 08.06.2005, 10:20 (vollbildsurfer, dualscreenbenutzer... dieser post war für euch...)
|
that
Hoffnungsloser Optimist
|
Google: javascript add elements zweiter Link
|
Rektal
Here to stay
|
<div id="inputlist"></div><div><input type="button" value="Add input" onclick="addInput();"></div>
function addInput() {
var newElement = document.createElement('div');
newElement.innerHTML = '<input name="value[]" type="text">';
document.getElementById('inputlist').appendChild(newElement);
}
Es gibt mehrere Moeglichkeiten, innerHTML ist a) die einfachste und b) die Kompatibelst und c) performanteste art aber d) in keinem DOM groesser 0. Aber seriously, jeder Browser der DOM soweit kann, kann auch innerHTML. Kann mir nicht vorstellen dass writeln gut funktioniert, da es imho auf anderer Ebene, der document-Ebene, funktioniert, aber nicht auf Element-Ebene.
Bearbeitet von watchout am 08.06.2005, 10:21
|
kleinerChemiker
Here to stay
|
danke ![:)](/images/smilies/smile.gif) beides sehr hilfreich. tja, mal wieder gesehen, google weiß alles, nur weiß ich nicht, wie ich google dazu bring, es mir zu sagen ![:(](/images/smilies/frown.gif) MIK
|
watchout
Legendundead
|
Es gibt mehrere Moeglichkeiten, innerHTML ist a) die einfachste und b) die Kompatibelst und c) performanteste art aber d) in keinem DOM groesser 0. Aber seriously, jeder Browser der DOM soweit kann, kann auch innerHTML.
Kann mir nicht vorstellen dass writeln gut funktioniert, da es imho auf anderer Ebene, der document-Ebene, funktioniert, aber nicht auf Element-Ebene. wenn du schon createElement verwendest kannst auch gleich den input damit erzeugen, und dann wirst auch das schirche innerHTML los. das ganze wär dann auf die art: <input type="button" onclick="addOne(this)" />
<script language="Javascript">
function addOne(e)
{
// Elemente erstellen
rahmen = document.createElement('div');
eingabe = document.createElement('input');
// Attribute erstellen
name = document.createAttribute('name');
wert = document.createAttribute('value');
type = document.createAttribute('type');
// Attributwerte festlegen
name.nodeValue = 'deinname';
wert.nodeValue = 'startwert';
type.nodeValue = 'text';
// Attribute zuweisen
eingabe.setAttributeNode(name);
eingabe.setAttributeNode(wert);
// Elemente anfügen
rahmen .appendChild(eingabe);
e.parentNode.appendChild(rahmen);
// fertig
}
</script>
Natürlich braucht das wesentlich mehr Code, aber es ist wesentlich sauberer auf die Weise und... Zukunftssicherer ![;)](/images/smilies/wink.gif) Ob das jetzt ne Mikrosekunde länger dauert is auch schon egal...
|
kleinerChemiker
Here to stay
|
wenn ich es richtig sehe, wird da aber der input direkt beim button erstellt, oder? außerdem habe ich auch dropdown's (select) mit ettlichen werten. derzeit sieht die seite so aus. allerdings muß ich noch bischen was machen. einerseits smarty dazu bringen daß es die / im js maskiert und andrerseits will ich die 2 funktionen zu einer zusammenlegen. <html>
<head>
<title>Webseite hinzufügen</title>
<script type="text/javascript">
function addInputL() {
var newElement = document.createElement('div');
newElement.innerHTML = '<select name=menul[] size="1"><option label="test1" value="1">test1</option>
<option label="test2" value="2">test2</option>
<option label="test3" value="3">test3</option>
<option label="test4" value="4">test4</option>
<\/select><br \/>';
document.getElementById('inputlistL').appendChild(newElement);
}
function addInputR() {
var newElement = document.createElement('div');
newElement.innerHTML = '<select name=menur[] size="1"><option label="test1" value="1">test1</option>
<option label="test2" value="2">test2</option>
<option label="test3" value="3">test3</option>
<option label="test4" value="4">test4</option>
<\/select><br \/>';
document.getElementById('inputlistR').appendChild(newElement);
}
</script>
</head>
<body>
<h1>Webseite hinzufügen</h1>
<form action="addplayerweb.php" method="POST">
Kurzbeschreibung: <input name="beschreibung" type="text" maxlength="255" /><br />
Seitenquelltext:<br />
<textarea name="text" style="width:95%; height:90%"></textarea><br />
Menü rechts:<br />
<select name=menul[] size="1">
<option label="test1" value="1">test1</option>
<option label="test2" value="2">test2</option>
<option label="test3" value="3">test3</option>
<option label="test4" value="4">test4</option>
</select><br />
<div id="inputlistL"></div>
<input type="button" value="Linkes Menü hinzufügen" onclick="addInputL();"><br />
<div id="inputlistR"></div>
<input type="button" value="Rechtes Menü hinzufügen" onclick="addInputR();"><br />
<input type="submit" name="submit" value="Seite anlegen" /> <input type="reset" value="Zurücksetzen" />
</form>
</body>
</html>
Bearbeitet von watchout am 08.06.2005, 11:54
|
watchout
Legendundead
|
Wär praktisch wenn du _einmal_ Code so posten würdest, dass er nicht den Bildschirm sprengt.
PS: wo die Ausgabe gemacht wird sollte eigentlich egal sein...
|
kleinerChemiker
Here to stay
|
sorry, soll nicht wieder vorkommen. sieht jetzt so aus, funzt und ich versteh es halbwegs ![;)](/images/smilies/wink.gif) <script type="text/javascript">
function addInput(art) {
var newElement = document.createElement('div');
newElement.innerHTML = '<select name=menul[] size=\"1\"><option label=\"test1\" value=\"1\">test1<\/option>\n<option label=\"test2\" value=\"2\">test2<\/option>\n<option label=\"test3\" value=\"3\">test3<\/option>\n<option label=\"test4\" value=\"4\">test4<\/option>\n<\/select><br \/>';
document.getElementById(art).appendChild(newElement);
}
</script>
und <div id="inputlistL"></div>
<input type="button" value="Linkes Menü hinzufügen" onclick="addInput('inputlistL');"><br />
|