was ist falsch? wenn checkbox geklickt, dann id verändern
Estelle
- javascript
hallo.
ich habe hier diese selbstgeschriebene js funktion, die drei checkboxen überwachen soll und eine endsumme je nach auswahl berechnen soll:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
function getTotal() {
var total = 0;
if (document.form.day1.checked) total += 5;
if (document.form.day2.checked) total += 10;
if (document.form.day3.checked) total += 8;
document.getElementById('ptotal').value = 'Gesamtbetrag: € '+total;
}
getTotal();
</SCRIPT>
am ende des javascript bereichs rufe ich die funktion dann auf, da ja auch vor erster auswahl das ausgabefeld mit inhalt versehen werden soll.
ansonsten rufe ich die funktion im <input> feld auf
<input onClick="getTotal()" type="checkbox" name="day1" value="5" />
mein formular-tag ist mit <form name="form" ..> definiert, damit ich mit document.form.day1... arbeiten kann.
dazu gibt es im html code noch das ausgabefeld
<p id="ptotal"></p>
nur was mache ich falsch? wo liegt der denkfehler?
ps.: das problem taucht unter apache, js 1.2 auf
Hallo "Forum".
Ist denn heute Abend niemand hier, der mir weiterhelfen kann/will?
Habe ich mich vieleicht unklar ausgedrückt? Ich denke doch nicht. Ist mein erster Eintrag hier im Forum. Laßt mich bitte nicht hängen ;-)
LG Estelle
Hallo Estelle,
document.getElementById('ptotal').value = 'Gesamtbetrag: € '+total;
dazu gibt es im html code noch das ausgabefeld
<p id="ptotal"></p>
nur was mache ich falsch? wo liegt der denkfehler?
Das ein P-tag kein Attribut value hat, so wie Du es gern hättest.
Du könntest mit innerHTML arbeiten oder mit createTextNode() anstelle von value.
Mit freundlichem Gruß
Micha
Das ein P-tag kein Attribut value hat, so wie Du es gern hättest.
oh. ach so. hat denn ein <div> tag das attribut value? oder was gibts noch in der richtung von p und div?
Danke schonmal.
LG Estelle.
Hallo Estelle,
hat denn ein <div> tag das attribut value? oder was gibts noch in der richtung von p und div?
Wieso schaust Du Dir nicht an, was ich Dir vorgeschlagen habe? Damit geht genau das, was Du vor hast.
Mit freundlichem Gruß
Micha
Du könntest mit innerHTML arbeiten
HallO!
ich habe mir das innerhtml jetzt mal angeschaut und komisch: wenn ich das gesamte beispiel skript aus dem link (oben) in meinen quellcode kopiere, gehts nicht. sonst schon.
was kann in einem html quelltext denn das unterbinden?? gleiche id bezeichnungen habe ich jedenfalls nicht...
LG Estelle
Hallo Estelle,
»» »» Du könntest mit innerHTML arbeiten
was kann in einem html quelltext denn das unterbinden?? gleiche id bezeichnungen habe ich jedenfalls nicht...
Ich kanns leider gerade nicht erkennen, was Du versucht hast. Vielleicht hilfst Du mir mit einem (temporären) Link oder ein paar Zeilen Quellcode auf die Sprünge?
Mit freundlichem Gruß
Micha
Hallo Estelle,
document.getElementById('ptotal').value = 'Gesamtbetrag: € '+total;
<p id="ptotal"></p>
nur was mache ich falsch? wo liegt der denkfehler?
wie derletztekick schon schrieb, hat <p> keinen Value. innerHTML wäre eine Möglichkeit, sollte aber nur benutzt werden, wenn in das <p> andere Tags gesetzt werden sollen und man keine Lust hat, createElement und appendChild zu benutzen. InnerHTML gehört nicht zum DOM, wird aber von (fast?) allen modernen Browsern unterstützt.
Bei einfachen Textausgaben nehme ich immer .firstChild.data (http://de.selfhtml.org/javascript/objekte/node.htm#first_child und http://de.selfhtml.org/javascript/objekte/node.htm#data). Dazu muss dein <p> aber schon Inhalt haben, sonst gibt es kein firstChild:
document.getElementById('ptotal').firstChild.data = 'Gesamtbetrag: '+String.fromCharCode(8364)+' '+total;
<p id="ptotal"> </p>
Ich bin nicht sicher, ob € im String interpretiert wird, auf einer Seite habe ich den CharCode wie oben verwendet.
Gruß, Jürgen
Hi,
InnerHTML gehört nicht zum DOM, wird aber von (fast?) allen modernen Browsern unterstützt.
Es wird von allen W3C-DOM-Browsern unterstützt.
Gruß, Cybaer
hi,
InnerHTML gehört nicht zum DOM, wird aber von (fast?) allen modernen Browsern unterstützt.
Es wird von allen W3C-DOM-Browsern unterstützt.
Nö.
(innerHTML vielleicht ...)
gruß,
wahsaga
Hi,
InnerHTML gehört nicht zum DOM, wird aber von (fast?) allen modernen Browsern unterstützt.
Es wird von allen W3C-DOM-Browsern unterstützt.
Nö.
(innerHTML vielleicht ...)
? Bitte um Erklärung. Möchte nicht dumm sterben!
Gruß, Cybaer
Hallo Cybaer, hallo wahsaga,
InnerHTML gehört nicht zum DOM, wird aber von (fast?) allen modernen Browsern unterstützt.
Es wird von allen W3C-DOM-Browsern unterstützt.
Nö.
(innerHTML vielleicht ...)? Bitte um Erklärung. Möchte nicht dumm sterben!
hier liegt das Problem des Zitieren eines Zitats vor. Dabei ist verlorengegangen, dass innerHTML am Anfang eines Satzes stand und daher groß (InnerHTML) geschrieben war.
Gruß, Jürgen
hi,
hier liegt das Problem des Zitieren eines Zitats vor.
Oder eins in der konsequenten Entscheidung für eine Schreibweise :-)
Dabei ist verlorengegangen, dass innerHTML am Anfang eines Satzes stand und daher groß (InnerHTML) geschrieben war.
In https://forum.selfhtml.org/?t=121656&m=782327 hast du es zwei mal am Anfang eines Satzes benutzt - dabei das erste mal in der "korrekten" Schreibweise, das zweite mal in der mit "angepasster".
Ich gebe in solchen Fällen idR. der "korrekten" Schreibweise den vorzug, auch am Satzanfang - schließlich ist innerHTML ja sowas wie ein "Eigenname".
gruß,
wahsaga
Hallo wahsaga,
Oder eins in der konsequenten Entscheidung für eine Schreibweise :-)
ich war mir eben nicht sicher, was besser ist.
Ich gebe in solchen Fällen idR. der "korrekten" Schreibweise den vorzug, auch am Satzanfang - schließlich ist innerHTML ja sowas wie ein "Eigenname".
Da stimme ich zu. Nur ob ich immer dran denke?
Gruß, Jürgen
Hi,
hier liegt das Problem des Zitieren eines Zitats vor. Dabei ist verlorengegangen, dass innerHTML am Anfang eines Satzes stand und daher groß (InnerHTML) geschrieben war.
Erlaß: Hiermit gilt eine Auszeichnungspflicht für Wahsagas Postings mit üblichen, standardisierten Mitteln der Ironiekennzeichnung, gemäß Smileyverordnung 7, Paragraph 3, Abschnitt 2 vom 1.4.1999. Die Auszeichnung ist vom Poster selbst vorzunehmen.
Der Erlaß tritt mit sofort in Kraft.
Gegen diesen vorläufigen Erlaß kann Rechtsbeschwerde eingelegt werden.
Hochachtungsvoll, Geheimer Oberrat Cybaer
Heidelberg, den 17.1.2006
[Stempel]
am ende des javascript bereichs rufe ich die funktion dann auf, da ja auch vor erster auswahl das ausgabefeld mit inhalt versehen werden soll.
du kannst getTotal() nicht aufrufen, bevor das Formular geladen ist. D.h. du artest ab, bis die Seite fertig ist oder du fügst den Aufruf in einen Skriptblock hinter dem Fomrular in deinen Quellcode. Das was du jetzt machst verursacht auf jeden fall einen Fehler. Diese siehst du, wenn du einen Geckobrowser (Mozilla, Firefox o.ä.) benutzt in der JS Konsole. Der IE zeigt diese ebenfalls an, wenn du auf die Fehlermeldung in der Statusleiste klickst, diese ist aber oft nicht zu gebrauchen da wenig aussagekräftig.
dazu gibt es im html code noch das ausgabefeld
<p id="ptotal"></p>
nur was mache ich falsch? wo liegt der denkfehler?
Wie schon erwähnt hat ein HTML kein value, sondern du willst hier den Textknoten ändern. Wenn du wirklich nur Text eintragen willst würd ich auch firstChild.data verwenden, dazu musst du wie schon erwähnt in den <p>-Tag noch ein einbauen.
Struppi.