Formularfelder automatisch füllen
Jogi
- javascript
Hallo Leute,
habe folgendes Problem:
Ich habe 20 Eingabefelder.
Wenn ich in das erste Feld die Zahl '50' schreibe,
dann soll diese Zahl in den restlichen 19 Feldern
automatisch geschrieben werden.
Das Problem:
Wenn ich in das 10. Feld jetzt aber eine '60' schreibe,
dann soll diese '60' in die restlichen 10 Felder übernommen
werden, die ersten 10 Felder sollen aber weiterhin die Zahl
'50' beinhalten.
Also immer wenn sich die Zahl ändert, soll diese Änderung
in den restlichen noch verbleibenden Feldern übernommen werden.
Wie geht sowas?
Für Tipps wäre ich dankbar
Grüße
Jogi
Hi Jogi,
Das wäre gut mit onChange machbar.
Hier mal der Link für onChange Events.
http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange
Wenn du nicht weiter kommst, sag bescheid.
Grüße Felix
Hallo Jogi,
(Frage vorne weg: Du bist aber nicht zufällig auch Berliner?)
Wenn Du die Namen der einzelnen Textfelder durchdacht vergibst, ist das ein wahres Kinderspiel ;)
<form>
<input name='feld1'>
<input name='feld2'>
<input name='feld3'>
[...]
<input name='feld19'>
<input name='feld20'>
</form>
Jedem Textfeld weist Du dann den Eventhandler onChange http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange nach folgenden Schema zu:
<input name='feldZAHL' onChange='mach(ZAHL)'>
Dann definierst Du Dir noch eine Funktion:
function mach(v)
{
var x=document.getElementsByName('feld'+v)[0].value
for(i=v;i<21,i++)
{
document.getElementsByName('feld'+i)[0].value=x
}
}
Das ganze würde auch mit http://de.selfhtml.org/javascript/objekte/elements.htm über eine Schleife funktionieren, aber da bin ich mir mit der richtigen Schreibweise unsicher.
Durch for() werden jeweil alle Eingabefelder unterhabl der neuen Eingabe angesprochen werden. Daher hoffe ich, du kannst etwas damit anfangen.
Gruß aus Berlin!
eddi
Hallo Jogi,
Moinsen eddi,
ich hätte da noch einen anderen ansatz. Ähnlich zu dem von Eddi, jedoch ein bisschen dynamischer bzw. einen bei dem bei veränderungen des Formulars das Script nicht so stark verändert werden muss...
<form name="myForm">
...
<input name="in_0" onChange="completeForm(this);">
<input name="ups" onChange="completeForm(this);">
<input name="in_2" onChange="completeForm(this);">
...
<input name="irgendwas" onChange="completeForm(this);">
...
</form>
und hier das Script:
<script type="text/javascript">
function completeForm(obj)
{
var value = '';
i = document.myform.length-1;
while(i)
{
if(document.myform.elements[i].name != obj.name)
document.myform.elements[i].value = obj.value;
else
break;
i--;
}
}
</script>
Viele Grüße
David
Hallo,
habe Script und Form kopiert aber es
funzt nicht.
Schreibe ins erste Feld was rein, aber die anderen Felder bleiben leer...
KAnnst Du es mal online stellen?
Ich weiss, ist etwas viel verlangt, aber
1. bin ich Javascript-Rookie
2. bin ich Ostfriese (wohne im schönen Wiesmoor bei Aurich)
:-)
Grüße
Jogi
Kein Problem,
hier der Link: http://www.david-zacharias.de/selfhtml/intelli_form.html
Greetz David
hi,
Ich weiss, ist etwas viel verlangt, aber
- bin ich Javascript-Rookie
- bin ich Ostfriese (wohne im schönen Wiesmoor bei Aurich)
welche von beiden eigenschaften soll jetzt deiner meinung nach entschuldigen, dass du "keinen bock" hast, dich selbst so weit mit den grundlagen von javascript zu beschäftigen, dass du die hier gegebenen tipps umsetzen kannst?
ich hoffe, dass David dir jetzt kein fertiges script hinwerfen wird.
gruß,
wahsaga
hi,
Moin moin wahsaga
ich hoffe, dass David dir jetzt kein fertiges script hinwerfen wird.
Ups.... leider schon geschehen...
Sorry,
aber eigentlich habe ich schon Bock, habe mit
den ersten Antworten auch schon rumprobiert,aber
es hat irgendwie nicht funktioniert.
Ich meine, die Funktion wurde ja schon vorher gepostet.
Soooo viel Arbeit und know-how hat David ja nicht preisgegeben.
Es war bei mir halt ein Denkfehler.
Ich bewege mich auch in anderen Foren (meistens das Flashforum)
und mich nervt es auch immer wieder, wenn User erwarten, dass
sie komplexe Lösungen einfach als fertiges Script zugeschickt bekommen.
@wahsaga:
Falls ich hier gegen irgeneine Etikette verstossen haben
sollte, bitte ich um Entschuldigung.
Grüße
Jogi
hi,
Wenn Du die Namen der einzelnen Textfelder durchdacht vergibst, ist das ein wahres Kinderspiel ;)
wenn alle diese inputfelder nacheinander kommen, sehe ich gar keinen grund, sie über ihren namen anzusprechen.
dann würde ich sie einfach über ihre nummer im formular ansprechen.
gruß,
wahsaga
hi,
Das ganze würde auch mit http://de.selfhtml.org/javascript/objekte/elements.htm über eine Schleife funktionieren, aber da bin ich mir mit der richtigen Schreibweise unsicher.
wenn alle diese inputfelder nacheinander kommen, sehe ich gar keinen grund, sie über ihren namen anzusprechen.
dann würde ich sie einfach über ihre nummer im formular ansprechen.
Durch diesen oben zitierten Satz hatte ich gehofft, es würde jemand meine geäußerte Unsicherheit konstruktiv aufgreifen und Jogi auch dazu einen kleinen Ansatz, der über den Verweis hinausgeht, mit auf den Weg geben.
Schade!
Gruß aus Berlin!
eddi