Autor | Zpráva | ||
---|---|---|---|
RRR Profil |
#1 · Zasláno: 20. 1. 2019, 17:26:06
zdravím, mám jednoduchý kód, který má dělat, že když si v select tlačítku vyberu například 5 kartonů, tak se počet zvolených kartonů vynásobí s jeho cenou (v tomto případě 10) a vypíše to jako Cena: ...
<html> <head> </head> <body> <script type="text/javascript"> var b = a*10; var c = document.getElementsByName("8699120032262"); var a = c.options[c.selectedIndex].value; </script> <select name="8699120032262" size="1" > <option value="0">0</option> <option value="1">1 karton</option> <option value="2">2 kartony</option> <option value="3">3 kartony</option> <option value="4">4 kartony</option> <option value="5">5 kartonů</option> <option value="6">6 kartonů</option> <option value="7">7 kartonů</option> <option value="8">8 kartonů</option> <option value="9">9 kartonů</option> <option value="10">10 kartonů</option> </select> <h1> cena: <script type="text/javascript"> document.write(b) </script> </h1> </body> </html> |
||
Keeehi Profil |
#2 · Zasláno: 20. 1. 2019, 17:58:51
RRR:
document.write se dá použít jen při načítání dokumentu. Jakmile je stránka už načtená, document.write se už použít nedá, protože by ji celou přepsal. var b = a*10; var c = document.getElementsByName("8699120032262"); var a = c.options[c.selectedIndex].value; Proměnná b musí být až na konci. Takhle by se snažila počítat s proměnnou a která v té době ještě neexistuje. c.options[c.selectedIndex].value se dá napsat jednodušeji jako c.value
document.getElementsByName("8699120032262") vrátí možinu (pole) elementů, které mají takové jméno. Pokud budeme předpokládat, že formulářový prvek takového jména je na stránce jeden, tak tě bude zajímat první prvek pole. Takže za tímto výrazem by mělo být ještě [0] - což říká, vyber první prvek v poli. (prvky v poli se číslují od nuly)
No a na závěr, musí se javascriptu říct, že to má někdy přepočítat. Vykonání nějaké akce na základě toho že se něco stalo zajišťují události. V tomto případě bych zvolil onchange která se spustí právě v případě změny hodnoty selectu. Celé upravené by to mohlo vypadat takto. Živá ukázka Ta konstrukce (function () { // .... })(); |
||
RRR Profil |
Keeehi:
to je parádní! děkuji moc Keeehi: Dá se to nějak použít pro větší množství tlačítek a sčítat to vše do jednoho vysledku? |
||
Keeehi Profil |
RRR:
Jasně že dá. Nejlépe bude všem takovým elementům přidat nějakou třídu a pro jejich výběr použít getElementsByClassName . Výběr prvního prvku pole tam teď nebude, jelikož tě teď budou zajímat všechny. To pole příjdeš cyklem a událost onchange pridáš každému z nich. Podobně se upraví i funkce recalculate kde se projde cyklem zase to pole s formulářovými elementy, do nějaké proměnné se to načítá a její obsah se nakonec vloží do toho připraveného spanu.
|
||
RRR Profil |
#5 · Zasláno: 21. 1. 2019, 21:16:39
Keeehi:
děkuji moc, už to šlape jako hodinky |
||
Časová prodleva: 5 let
|
0