Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.

Diskuze: Porblémy s funkčností elementů

Aktivity
Avatar
Jan Lorenc
Člen
Avatar
Jan Lorenc:21.3.2018 18:49

Ahoj, začínám s JavaScriptem a mám pár dotazů ohledně poměrně jednoduchých a základních, nicméně z mého pohledu nepochopitelně nefunkčních příkazů. Vybral jsem si zpracování formuláře, jako vhodný "projekt" na začátek a nefungují následující věci:

var jmeno = document.getElementById("jmeno").value;
alert("jmeno");

nic to nedělá, pokud mám jen document.getE­lementById("jme­no") a až v alertu jmeno.value, tak v pořádku, fungovat by měl však i předchozí, netuším kde je problém
další se jednají zpracování inputu radio a checkbox:

// input type=radio
if(document.getElementById("pohlavi-muz").checked)
pohlavi= "Muž";
else
pohlavi= "Žena";

// input type=checkbox
if(document.getElementById("chci-zpravy-od-uzivatelu").checked == true)
var zpravyOdUzivatelu = "Chci dostávat zprávy od jiných uživatelů";

u prvního to absolutně ignoruje podmínku v IFu ať už je muž zaškrtlej nebo ne, vždy to hází ženu, přitom je to napsané správně(ověřeno z mnoha zdrojů)
u checkboxu to zase naopak vždy bere jako zaškrtnuto, i když není ... v obou případech jsem zkoušel všechno možné(==true i u radia, i když není třeba, místo true dávat jedničky a spoustu dalších identických řešení) a nic
...posledním problémem je zápis údajů z formuláře do textového dokumentu

var dokument = fopen("C:Udaje.txt", 3);   //otevření dokumentu pro psaní
if(dokument!=-1)                                         // pokud se dokument otevře, tak...
  {
  var str="jmeno";
  fwrite(dokument, str);                                //napiš "jmeno" do dokumentu
  fclose(dokument);                             //zavři dokument
  }

tento kód mám z jedné stránky, protože psaní do jiných dokumentů přesahuje moje schopnosti, nicméně kód se mi zdá validní a přesto nefunguje...co je na něm špatně, popřípadě jak psát do jiných dokumentů?

Moc děkuji za odpovědi a kdyby někdo ještě poradil, jak si nějak efektivně ověřovat JavaScript kód, byl bych moc vděčný. Kupříkladu toto je podle konzole i internetových validátorů v pořádku, ale nefunguje to. Dále i když vím, že se nejedná o kompilovací jazyk, tak přece jen snad musí existovat nějaký způsob kontroly, protože takhle jen co jen jedna věc neladí, i když je syntakticky dobře, script se vůbec nespustí a nelze tedy ani na výsledku hledat sémantické nedostatky a v tom kódu je to značně na dlouho, neboť člověk ani neví kde vlastně hledat, když se to nespustí vůbec. Prakticky teď ověřuji po každých dvou napsaných řádcích, jestli to dělá, co chci.

 
Odpovědět
21.3.2018 18:49
Avatar
Taskkill
Redaktor
Avatar
Taskkill:21.3.2018 20:37

alert("jmeno") vypisuje retezec jmeno, pokud chces vypsat obsah promenne jmeno -> alert(jmeno) bez uvozovek

https://jsfiddle.net/…ll/tywwtbnx/
otevri konzoli a klikej si do checkboxu, kazdou sekundu se vypise jestli checked nebo ne - tezko rict, kde mas chybu

https://developer.mozilla.org/en-US/search?…
evidentne zadna funkce fopen neexistuje

javascript v browseru ti umoznuje vzit string/blob a podobne a udelat z nej stahnutelnej soubor, neumoznuje ti otevirat soubory na disku jinak nez pres input type='file'
nodejs to umi ale to bezi na serveru

Editováno 21.3.2018 20:39
 
Nahoru Odpovědět
21.3.2018 20:37
Avatar
Jan Lorenc
Člen
Avatar
Jan Lorenc:21.3.2018 21:05

Díky za osvětlení práce s tím dokumentem. S tím alert(jmeno) se omlouvám, mám tu chybu, v kódu to mám bez uvozovek, ale přesto to bez .value nebere. Ty checkboxy a radio stále netuším. Když si alertem ověřím hodnotu, vypisuje to true, tak jak má, nicméně ten IF to prostě nebere.

 
Nahoru Odpovědět
21.3.2018 21:05
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Jan Lorenc
Člen
Avatar
Jan Lorenc:22.3.2018 17:29

Už jsem na ty inputy přišel, neměl jsem to uvnitř funkce na zpracování tlačítka, tam už to funguje dobře, nevím ale, proč si ty proměnné např. to pohlavi nemůžu podmíněně definovat i mimo funkci ...jinak teda jestli dobře chápu vzít ty hodnoty z formuláře a zapsat je do jiného souboru(ať už existujícího, nebo že by vytvořil, jako třeba v C) čistej JavaScript neumožňuje?

 
Nahoru Odpovědět
22.3.2018 17:29
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Jan Lorenc
Taskkill:22.3.2018 19:21

JavaScript umožňuje na klientu stvořit soubor a nechat ho uživatele pak stáhnout. Takže to jde, ale funguje to jinak než v céčku, hodně jinak.

OT: Doporučuji ti používat tlačítko odpovědět, aby lidi na které mluvíš dostali notifikace.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
22.3.2018 19:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.