Autor | Zpráva | ||
---|---|---|---|
kalina Profil |
#1 · Zasláno: 9. 4. 2013, 18:42:37
Dobrý den,
prosím o radu, co kde dělám špatně. Učím se javascript a nejsem schopná správně nastavit podmínku, aby se při nerovnosti hodnot skrylo textové okno formuláře (nebo se třeba alespoň změnila jeho barva, či barva textu). Zkoušela jsme podmíněně stylovat také div (pokud to stejné dělám jinde bez použití formuláře, funguje mi to) tady bohužel nic. Přikládám odkaz na živou ukázku: www.1a2b.cz/soucet_srovnani.html function Srovnani1() { var a=parseInt(document.formular1.vysledek_1.value); var b=parseInt(document.formular1.vysledek_2.value); document.formular1.vysledek_3.value=a==b; if (vysledek_3 == true){ formular1.vysledek_3.style.display=''; } else formular1.vysledek_3.style.display='none' } předem děkuji J. Kalinová |
||
_es Profil |
#2 · Zasláno: 9. 4. 2013, 19:08:27
kalina:
if (vysledek_3 == true){ vysledek_3 , a aj iné podobné premenné, nemáš nikde definovanú.
|
||
peta Profil |
v = a==b; document.formular1.vysledek_3.value = v; if (v == true) A mozna bych to psal uplne jinak... function Srovnani1() { var a,b,f; f = document.formular1; a = parseInt(f.vysledek_1.value); b = parseInt(f.vysledek_2.value); f.vysledek_3.value = a==b; f.vysledek_3.style.display = a==b ? '' : 'none'; } |
||
kalina Profil |
#4 · Zasláno: 12. 4. 2013, 21:10:43
_es a peta: děkuji moc za rady, podařilo se.
Protože jsem však sloučila dvě mat. funkce do jednoho tlačítka (sčítání a porovnávání dvou hodnot) zřejmě logicky se obojí provede až na dvouklik a nikoliv na první kliknutí (nejdříve vypočítá a+b, potom porovná x==y). Možná jsem naivní, ale není možné, aby obě funkce proběhly hned na první kliknutí? viz živá ukázka a kód: function Soucet01() { var a,b,x,z,f; f = document.formular01; a = parseInt(document.formular01.cislo_1.value); b = parseInt(document.formular01.cislo_2.value); x = parseInt(document.formular01.vysledek_1.value); y = parseInt(document.formular01.vysledek_2.value); f.vysledek_2.value=a+b; f.vysledek_2.style.color='white'; f.vysledek_2.style.background ='green'; f.cislo_1.style.color='white'; f.cislo_1.style.background ='green'; f.cislo_2.style.color='white'; f.cislo_2.style.background ='green' if ( x==y ){ f.vysledek_3.value='počítal jsi správně' ; f.vysledek_3.style.background='yellow'; f.vysledek_1.style.color='white'; f.vysledek_1.style.background ='green'; } if ( x<y ){ f.vysledek_3.value='chyba, správný výsledek musí být větší. Klikni a počítej znovu' ; f.vysledek_3.style.background='red'; f.vysledek_1.style.color='white'; f.vysledek_1.style.background ='red'; } if ( x>y ){ f.vysledek_3.value='chyba, správný výsledek musí být menší. Klikni a zkus to znovu' ; f.vysledek_3.style.background='blue'; f.vysledek_1.style.color='white'; f.vysledek_1.style.background ='blue' }} Předem děkuji J. Kalinová |
||
pako Profil * |
#5 · Zasláno: 12. 4. 2013, 22:55:37
skus sa zamerat na premennu
y a jej hodnotu ked kliknes prvykrat.
|
||
kalina Profil |
#6 · Zasláno: 12. 4. 2013, 23:47:51
pako: děkuji, myslíš funkci eval? zkoušela jsem ji, ale zatím mi to vůbec nefunguje.
|
||
pako Profil * |
#7 · Zasláno: 13. 4. 2013, 08:37:12
nie, myslel som to, ze v nej po prvom spusteni funkcie mas NaN, pretoze sa snazis previest na cislo v tej chvili este prazdny retazec z
input vysledek_2 na riadku 7, hodnotu mu davas az na riadku 8, preto to porovna az na druhy raz, ked uz ma premenna y ciselnu hodnotu. uplne polopate, prehod si riadok 7 a 8 a malo by to ist na jeden klik
|
||
kalina Profil |
#8 · Zasláno: 13. 4. 2013, 11:50:09
Nádhera, já jsem naprosto šťastná, funguje to na první klik. viz: živ.uk. (NaN se mi tam sice, bez zadání hodnot, ukazuje i teď, ale to je snad normální, když nemá chudák co počítat a přitom se po něm požaduje výsledek.) Jinak ale opravdu moc děkuji a jsem (doufám) poučená i pro příště.
|
||
Časová prodleva: 11 let
|
0