Skip to main content
← ⚑ JavaScript & the browserΒ·Module C2 Β· Lesson 5
TaskHTML has <input id='name' placeholder='your name' /> and <p id='hello'>hi, stranger</p>. JS: on every 'input' event, update #hello to 'hi, {input.value}' (falling back to 'stranger' when empty). Call once on load so the initial state is right.

Reading form inputs without a framework

100 XP8 min
Theory

Read what the user typed

const input = document.getElementById("email");
input.value;          // string β€” what's in the box right now
input.value = "";     // clear it

Every form control has .value. <input>, <textarea>, <select> β€” all the same.

Listening for changes

input.addEventListener("input",  () => { /* fires on every keystroke */ });
input.addEventListener("change", () => { /* fires on blur or on commit */ });

input fires while the user types. change waits for blur (or Enter on selects). Pick input for live validation; change for "user actually committed."

Reading checkboxes + radios

checkbox.checked;     // boolean
radio.checked;        // boolean β€” true only on the selected one

Same pattern, different property. The DOM gives you back the user's state directly.

A real "live preview" pattern

const input = document.getElementById("name");
const preview = document.getElementById("preview");
const render = () => preview.textContent = \`hi, ${input.value || "stranger"}\`;
input.addEventListener("input", render);
render();   // initial state

Read β†’ render. Read β†’ render. Same pattern as the C1 word counter, just glued to a different control.

πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.