purzelbaum
unsere besten emails
Coder Board Community

 
Boardmenü
Forum
Portal

Registrieren
Suche
Statistik
Mitglieder
Team
Kalender
Sponsoren
Partner

F.A.Q

Lexikon
Amazon Shop
Unterforen Navigation
Hardware
Software
Betriebssysteme
Foren & CMS
EDV Sicherheit
Telekommunikation
Tutorials & FAQ's
Downloads
Boardsuche
Board durchsuchen:

Wer ist Online ?
Zur Zeit im Forum unterwegs:
- 0 Mitglieder
- davon 0 unsichtbar
- 12 Besucher
- 3 Bot(s)
- 15 Benutzer gesamt


Wer ist wo online?
Wer war Online ?
Heute waren 0 Mitglieder im Forum unterwegs.
Linktip's
   Eigene Projekte:
auto-board.info
film-freunde.info
flirt-freunde.info
linkhunter.info
tier-freunde.info
spass-forum.info
buch-freunde.info
mystic-freunde.de
heimwerker-freunde.de

   Befreundete Projekte:
holyhell.de
emsfriends.de

Coder Board Community » Coding » Java Script » Formularfelder berechnen sofort nach Werteingabe » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Formularfelder berechnen sofort nach Werteingabe
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Prometheus Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Formularfelder berechnen sofort nach Werteingabe Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

10.09.2008 13:29 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Google
Zum Anfang der Seite springen

http://www.itratos.de
Artanis Artanis ist männlich
Newb


Dabei seit: 23.06.2005
Beiträge: 15
Herkunft: VR

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 Artanis ist offline E-Mail an Artanis senden Beiträge von Artanis suchen Nehmen Sie Artanis in Ihre Freundesliste auf
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 Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

10.09.2008 14:29 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Ebay
Zum Anfang der Seite springen

http://www.itratos.de
Artanis Artanis ist männlich
Newb


Dabei seit: 23.06.2005
Beiträge: 15
Herkunft: VR

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 Artanis ist offline E-Mail an Artanis senden Beiträge von Artanis suchen Nehmen Sie Artanis in Ihre Freundesliste auf
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 Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

10.09.2008 14:43 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Ebay
Zum Anfang der Seite springen

http://www.itratos.de
Artanis Artanis ist männlich
Newb


Dabei seit: 23.06.2005
Beiträge: 15
Herkunft: VR

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Also sind die Variablen umsatzwg1 etc. falsch gefüllt
Das sollen doch die Werte aus den Textfeldern sein, oder? Überprüf am besten nochmal das auslesen der Felder oder poste einen Teil davon.

So würd ichs machen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<input type='text' name='feld1' onBlur='rechne()'>
<input type='text' name='feld2' onBlur='rechne()'>
<!--restlichen Felder-->
<input type='text' name='total'>

<script>
function rechne(){
var umsatzwg1 =parseInt(document.getElementsByName('feld1')[0].value,10);
var umsatzwg2 = parseInt(document.getElementsByName('feld2')[0].value,10);
// entsprechend die restlichen Felder
document.getElementsByName('total')[0].value=umsatzwg1+umsatzwg2;
}
</script>




btw: Mir ist ein Fehler im Forum aufgefallen, vlt kannst du ihn ja beheben^^
Wollte erst den erweiterten Editor benutzen. Da ich aber keine Applets aktiviert habe, bin ich zurückgesprungen. Wenn man dann die Antwort abschicken will, kommt man wieder zum erweiterten Editor und kann garnicht mehr antworten Zunge raus

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Artanis: 10.09.2008 15:08.

10.09.2008 15:06 Artanis ist offline E-Mail an Artanis senden Beiträge von Artanis suchen Nehmen Sie Artanis in Ihre Freundesliste auf
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 Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

10.09.2008 15:23 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Google
Zum Anfang der Seite springen

http://www.itratos.de
comand
Newb


Dabei seit: 12.06.2005
Beiträge: 12

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 comand ist offline E-Mail an comand senden Homepage von comand Beiträge von comand suchen Nehmen Sie comand in Ihre Freundesliste auf
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 Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

11.09.2008 07:46 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Google
Zum Anfang der Seite springen

http://www.itratos.de
Artanis Artanis ist männlich
Newb


Dabei seit: 23.06.2005
Beiträge: 15
Herkunft: VR

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das, was comand geschrieben hat, ist ja fast das selbe, was ich geschrieben hab Zunge raus

Aber zum Thema Int:

parseInt ist für Int
und parseFloat.. hmmm vermutlich für Float, also Kommazahlen

Am besten benutzt du vorher die Standard-replace Funktion, um alle Kommata zu Punkten zu machen. Danach parseFloat und alle sind glücklich.

Edit:
Es macht übrigens keinen Unterschied, ob du einem Feld eine Id gibst und die ansprichst oder halt per Namen.
Der einzige Unterschied liegt darin, dass du dir das [0] sparen kannst.
Naja und das Auslesen des Servers, da IDs nicht mit dem Request verschickt werden.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Artanis: 11.09.2008 09:03.

11.09.2008 08:47 Artanis ist offline E-Mail an Artanis senden Beiträge von Artanis suchen Nehmen Sie Artanis in Ihre Freundesliste auf
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.
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Coder Board Community » Coding » Java Script » Formularfelder berechnen sofort nach Werteingabe

Views heute: 99 | Views gestern: 7.372 | Views gesamt: 15.680.381



Impressum

Board Blocks: 46.030 | Spy-/Malware: 1.245.611.449.400.000.000.000.000.000 | Bad Bot: 0 | Flooder: 21.847
CT Security System Pre 6.0.1: © 2006-2007 Frank John

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH

Style & Graphics © 2004-2005 by Technomausi