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 itEvery 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 stateRead β 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.