Încerc să fac prima mea încercare cu Javascript luând datele utilizatorului și apoi schimbând html-ul unui element pentru a scuipa o valoare. Este un calculator de calorii. Iată codul meu HTML, javascriptul meu și o explicație a ceea ce cred că se presupune că se va întâmpla cu cunoștințele mele limitate:

javascript

Ceea ce mă aștept să se întâmple este că funcția va verifica mai întâi dacă utilizatorul a bifat bărbatul sau femeia. Apoi, dacă bifează mascul, se creează o nouă variabilă (nu sunt sigur dacă acesta ar fi cel mai optim mod de a face acest lucru oricum0 în care adaugă mascul (pentru că am pus var male = document.getElementsByName) („male”). Valoare și este o intrare de tip radio, am citit că va citi ceea ce ați pus ca valoare, așa că am presupus că „masculin” în variabila maleCals va deveni acea valoare, 66,47 Apoi am presupus că înălțimea și greutatea vor fi citite ca oricare ar fi numărul utilizatorul introduce formularele de intrare și apoi să fie scuipat ca un paragraf pentru

element cu id-ul totalCals.

Dilema mea este că pur și simplu nu funcționează, atunci când introduceți valori, nu se scrie nimic în

Orice sugestie ar fi utilă.

2 Răspunsuri 2

Există numeroase probleme.

Să începem prin curățarea codului HTML:-

Plasând elementele de intrare în etichetele etichetei, utilizatorul poate face clic acum oriunde în etichetă pentru a da accentului elementului de intrare conținut.

Rețineți, de asemenea, că ambele butoane radio trebuie să aibă același atribut de nume. Deci, pentru a face diferența între ele, trebuie să aibă atribute de identificare diferite.

În unele browsere trebuie să plasați () la sfârșitul fiecărui nume de gestionare a evenimentelor. Dacă nu puteți prevedea ce browser va fi utilizat de client, atunci este mai bine să îl jucați în siguranță. Deci, includeți-le întotdeauna.

Pentru a face testarea mai ușoară, am adăugat un atribut selectat la butonul radio masculin și atribute de valoare implicite celorlalte elemente de intrare. Vă rugăm să nu ezitați să le eliminați înainte de implementare.

Atributele de valoare de pe butoanele radio sunt într-adevăr lucruri care aparțin fișierului model (adică javascript) nu în vedere (adică html).

Acum adăugați un pic de stil în CSS:-

Și, în cele din urmă, curățați Javascriptul:-

Știu că mulți oameni nu vor fi de acord, dar personal consider că duplicarea codurilor este distractivă. În codul dvs. document.getElementById (id) se repetă des. Așa că am extras acel comportament într-o mică funcție de ajutor. Acum, restul codului citește mult mai bine.

Deoarece aplicați același factor de scalare la greutate, înălțime indiferent de sex, am mutat acea scalare și acum nu mai este duplicat.

Observați că am presupus că dispozitivele de închidere lipsă ar trebui să meargă la sfârșitul formulelor. Nu pot verifica acest lucru, deoarece nu am acces la documentul sursă în care ați descoperit aceste formule.

De asemenea, ați folosit „x” în interiorul unei formule în loc de „*”. Aceasta este o greșeală obișnuită, deoarece se trece de la algebra scrisă la algoritmi de computer. Ai grijă de acesta.

În cele din urmă, am eliminat toate acele puncte și virgule inutile (și distractive). În Javascript există doar câteva ocazii rare în care trebuie să utilizați efectiv punct și virgulă.