| |
|
|
 |
Formularfelder berechnen sofort nach Werteingabe |
Prometheus
Administrator

Dabei seit: 09.05.2003
Beiträge: 2.950
 |
|
| Formularfelder berechnen sofort nach Werteingabe |
 |
Ich habe ein Formular mit 10 Eingabefeldern. Standardwert für alle Felder ist 0. Wenn nun ein Feld verändert wird soll ein Feld "Total" automatisch die Summe aus den 10 Feldern erhalten. Ich habe versucht mit "onchange" bei jedem Eingabefeld die Änderung zu erfassen und dann das Totalfeld neu zu berechnen aber irgendwie klappt das nicht. Kann mir da jemand kurz bei helfen?
__________________
mfg Prometheus
|
|
|
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.
|
|
|
10.09.2008 13:29 |
|
|
Google
 |
|
|
|
Artanis
Newb

Dabei seit: 23.06.2005
Beiträge: 15
Herkunft: VR
 |
|
Versuch es mal mit
onKeyUp='deineFunktion()' nach Tastatureingabe oder
onBlur='...' beim Verlassen des Feldes.
onChange geht unter anderem bei < SELECT>
|
|
10.09.2008 14:22 |
|
|
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von Artanis am 10.09.2008 um 14:22 verfassten Beitrag. Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
|
Prometheus
Administrator

Dabei seit: 09.05.2003
Beiträge: 2.950
Themenstarter
 |
|
Ich glaube ich habe irgendwie einen grundsätzlichen Denkfehler. So sieht der Teil aus der eigentlich die Neuberechnung machen sollte.
| php: |
1:
|
onBlur="document.getElementsByName('total').value=umsatzwg1+umsatzwg2+umsatzwg3+umsatzwg4+umsatzwg5+umsatzwg6+umsatzwg7+umsatzwg8+umsatzwg9+umsatzwg10" |
|
__________________
mfg Prometheus
|
|
|
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.
|
|
|
10.09.2008 14:29 |
|
|
Ebay
 |
|
|
|
Artanis
Newb

Dabei seit: 23.06.2005
Beiträge: 15
Herkunft: VR
 |
|
Wenn du getElementsByName('total') benutzt, kriegst du ein Array zurück mit allen Elementen, die 'total' heißen.
Da du aber vermutlich nur ein Element mit diesem Namen hast, nimmst du am besten das hier --> getElementsByName('total')[0].value...etc
|
|
10.09.2008 14:39 |
|
|
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von Artanis am 10.09.2008 um 14:39 verfassten Beitrag. Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
|
Prometheus
Administrator

Dabei seit: 09.05.2003
Beiträge: 2.950
Themenstarter
 |
|
OK also es tut sich schon mal was. Allerdings noch nicht das, was passieren soll.
Mein Feld "total" enthält nach Eingabe eines Wertes folgenden Inhalt
| Zitat: |
| [object HTMLInputElement][object HTMLInputElement][object HTMLInputElement][object HTMLInputElement][object HTMLInputElement][object HTMLInputElement][object HTMLInputElement][object HTMLInputElement][object HTMLInputElement][object HTMLInputElement] |
Also exakt 10 Einträge. Scheinbar wird der Feldinhalt nicht als Wert behandelt. Muss ich ggf. auch über ...value arbeiten um den Wert des angesprochenen Feldes zu bekommen?
__________________
mfg Prometheus
|
|
|
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.
|
|
|
10.09.2008 14:43 |
|
|
Ebay
 |
|
|
|
|
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von Artanis am 10.09.2008 um 15:06 verfassten Beitrag. Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
|
Prometheus
Administrator

Dabei seit: 09.05.2003
Beiträge: 2.950
Themenstarter
 |
|
Nun, da ich keine JS Funktion dafür basteln wollte hab ich das ganze jetzt einfach verpackt. So schaut jetzt eine Input Zeile aus und das klappt auch.
| Zitat: |
<input type="text" name="umsatzwg1" size="15" value="0" class="input" onBlur="document.getElementsByName('total')[0].value=document.getElementsBy
Name('umsatzwg1')[0].value*1+document.getElementsByName('umsatzwg2')[0].val
ue*1+document.getElementsByName('umsatzwg3')[0].value*1+document.getElement
sByName('umsatzwg4')[0].value*1+document.getElementsByName('umsatzwg5')[0].
value*1+document.getElementsByName('umsatzwg6')[0].value*1+document.getElem
entsByName('umsatzwg7')[0].value*1+document.getElementsByName('umsatzwg8')[
0].value*1+document.getElementsByName('umsatzwg9')[0].value*1+document.getE
lementsByName('umsatzwg10')[0].value*1"> |
Das "*1" bewirkt das der Feldinhalt automatisch in eine Zahl gewandelt wird und nicht als String behandelt wird. Problem ist jetzt lediglich noch das das Komma nicht als Trennzeichen behandelt wird sondern nur der Punkt.
__________________
mfg Prometheus
|
|
|
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.
|
|
|
10.09.2008 15:23 |
|
|
Google
 |
|
|
|
comand
Newb

Dabei seit: 12.06.2005
Beiträge: 12
 |
|
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
|
function getTotal(){
var zahl1 = parseint(document.getElementById('umsatzwg1').value);
var zahl2 = parseint(document.getElementById('umsatzwg2').value);
var zahl3 = parseint(document.getElementById('umsatzwg3').value);
var zahl4 = parseint(document.getElementById('umsatzwg4').value);
var zahl5 = parseint(document.getElementById('umsatzwg5').value);
var zahl6 = parseint(document.getElementById('umsatzwg6').value);
var zahl7 = parseint(document.getElementById('umsatzwg7').value);
var zahl8 = parseint(document.getElementById('umsatzwg8').value);
var zahl9 = parseint(document.getElementById('umsatzwg9').value);
var zahl10 = parseint(document.getElementById('umsatzwg10').value);
var total = zahl1 + zahl2 + zahl3 + zahl4 + zahl5 + zahl6 + zahl7 + zahl8 + zahl9 +zahl10;
document.getElementById('total').value = total;
}
<input type="text" id="umsatzwg1" name="umsatzwg1" size="15" value="0" class="input" onBlur="getTotal();" />
|
|
versuchs mal so.
musst nur den Inputs noch zusätzlich immer eine ID geben.
|
|
10.09.2008 23:40 |
|
|
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von comand am 10.09.2008 um 23:40 verfassten Beitrag. Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
|
Prometheus
Administrator

Dabei seit: 09.05.2003
Beiträge: 2.950
Themenstarter
 |
|
Das parseint setzt die Variable in eine Zahl um das ist schon gut. Allerdings nur ganze Zahlen. Ich hab es wie gesagt durch "mal 1" gelöst was den Feldinhalt ebenfalls in eine Zahl wandelt. Dummerweise ist der Punkt das Dezimaltrennzeichen und nicht das Komma wie es eigentlich sein soll. Jetzt muss ich wohl doch eine kleine Funktion bauen und das eingegebene Komma als Punkt behandeln lassen und bei der Ausgabe das Ergebnis in einen String wandeln der ebenfalls mit Komma arbeitet.
__________________
mfg Prometheus
|
|
|
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.
|
|
|
11.09.2008 07:46 |
|
|
Google
 |
|
|
|
|
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von Artanis am 11.09.2008 um 08:47 verfassten Beitrag. Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
|
|
|
|
 |
|