Formhåndtering
Styring med JavaScript
Med JavaScript kan vi bl.a....
Opsamle og vise data
Nulstille
Fjerne browser-popup
JavaScript
querySelector
function()
addEventListener
textContent
Recap
JavaScript
querySelector()
function()
addEventListener()
textContent
)
Recap
JavaScript
querySelector(
function()
addEventListener()
classList
)
<h1>Overskrift</h1>h1JavaScript
querySelector(
function()
addEventListener()
classList
)
<h1>Overskrift</h1>h1JavaScript
querySelector(
function()
addEventListener()
classList
)
<h1>Overskrift</h1>h1" "
JavaScript
querySelector(
function()
addEventListener()
classList
)
<h1>Overskrift</h1>h1" "
document.
Kig efter "h1" i HTML-dokumentet
JavaScript
querySelector(
function()
addEventListener()
textContent
)
h1
" "
document.
const heading =
JavaScript
querySelector(
function()
addEventListener()
textContent
)
h1
" "
document.
const heading =
JavaScript
querySelector(
function()
addEventListener()
textContent
)
h1
" "
document.
const heading =
heading.
JavaScript
querySelector(
function() {
addEventListener()
textContent
)
h1
" "
document.
const heading =
heading.
.remove
= "Hello JS"
JavaScript
querySelector(
function() {
addEventListener()
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
= "Hello JS"
JavaScript
querySelector(
function() {
addEventListener(
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
querySelector(
)
button
" "
document.
const btn =
)
= "Hello JS"
JavaScript
querySelector(
function() {
addEventListener(
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
querySelector(
)
button
" "
document.
const btn =
)
= "Hello JS"
JavaScript
querySelector(
function() {
addEventListener(
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
querySelector(
)
button
" "
document.
const btn =
btn.
)
= "Hello JS"
JavaScript
querySelector(
function sayHello() {
addEventListener(
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
querySelector(
)
button
" "
document.
const btn =
btn.
)
"click", sayHello
= "Hello JS"
Form Events
Vi kan "lytte" til formularen
const form = document.querySelector("form");Først laver vi en henvisning
Form Events
Vi kan "lytte" til formularen
const form = document.querySelector("form");
form.addEventListener( , ...);'invalid''submit'Form Events
Vi kan "lytte" til formularen
const form = document.querySelector("form");
form.addEventListener( , ...);'invalid''submit'Lyt efter submit (når jeg indsender)
Form Events
Vi kan "lytte" til formularen
const form = document.querySelector("form");
form.addEventListener( , ...);'invalid''submit'Lyt efter, om der er felter, der er ugyldige
"Gør ikke, som du plejer..."
event.preventDefault();<a href="something.html">Se mere</a>Links ville ikke linke, osv.
Invalid-eventet
function cancelPopup(event) {
event.preventDefault(); /* Gør ikke som du plejer */
}
form.addEventListener('invalid', cancelPopup);Fjern browser-popup
Vi får et invalid-event med
Invalid-eventet
function cancelPopup(event) {
event.preventDefault();
form.querySelector(":user-invalid").focus();
}
form.addEventListener('invalid', cancelPopup, true);
Fjern browser-popup
Copy/paste moment
øvelse 10
Tilføj invalid-event
Sørg for, at browserens default popup-vindue ikke vises ved fejl i formularen.


Submit-eventet
const form = document.querySelector("form");
function handleSubmit(event) {
}
form.addEventListener("submit", handleSubmit);Hvad skal der ske, når jeg submitter?
const form = document.querySelector("form");
function handleSubmit(event) {
// 1. undgå refresh
// 2. samle data op
// 3. vise data
// 4. evt. nustil formular
}
form.addEventListener("submit", handleSubmit);Hvad skal der ske, når jeg submitter?
Submit-eventet
const form = document.querySelector("form");
function handleSubmit(event) {
// 1. undgå refresh
event.preventDefault();
// 2. samle data op
// 3. vise data
// 4. evt. nustil formular
}
form.addEventListener("submit", handleSubmit);Undlad browser refresh
Submit-eventet
const form = document.querySelector("form");
function handleSubmit(event) {
// 1. undgå refresh
event.preventDefault();
// 2. samle data op
// 3. vise data
// 4. evt. nustil formular
form.reset();
}
form.addEventListener("submit", handleSubmit);Nulstil formularen v/ submit
Submit-eventet
øvelse 11
Tilføj submit-event
Stop browserens reload og nulstil felterne med ved submit.

.reset()
.preventDefault()
FormData
Saml felt-værdierne op
FormData-objektet vil blive udfyldt med formularens nuværende nøgler/værdier ved at bruge name-egenskaben for hvert element til nøglerne og deres indsendte værdi til værdierne.

const form = document.querySelector("form");
function handleSubmit(event) {
const formData = new FormData(form);
}FormData-syntaks
Saml felt-værdierne op

const form = document.querySelector("form");
function handleSubmit(event) {
const formData = new FormData(form);
const firstName = formData.get("first_name")
}.get()
Saml felt-værdierne op
firstName indeholder nu strengen "Peter"
<input name="first_name" />
const form = document.querySelector("form");
function handleSubmit(event) {
const formData = new FormData(form);
const firstName = formData.get("first_name")
const lastName = formData.get("last_name")
const email = formData.get("email")
//...
}.get()
Saml felt-værdierne op
const form = document.querySelector("form");
const firstOutput = document.querySelector(".first_output");
function handleSubmit(event) {
const formData = new FormData(form);
const firstName = formData.get("first_name")
firstOutput.textContent = firstName;
}.textContent
Vis værdierne
<p>First:
<span class="first_output"></span>
</p>"Peter"
function handleSubmit(event) {
const formData = new FormData(form);
// Hent værdier fra form
const firstName = formData.get("first_name");
const lastName = formData.get("last_name");
// Sæt værdier ind i output-elementer
firstOutput.textContent = firstName;
lastOutput.textContent = lastName;
}.textContent
Vis værdierne

function handleSubmit(event) {
event.preventDefault();
const formData = new FormData(form);
// Hent værdier fra form
const firstName = formData.get("first_name");
const lastName = formData.get("last_name");
// Sæt værdier ind i output-elementer
firstOutput.textContent = firstName;
lastOutput.textContent = lastName;
// ...
form.reset();
}Husk det hele...
øvelse 12
Saml værdier op og vis dem
Stop browserens reload og nulstil felterne med ved submit.
.textContent
new FormData()

Forms & JS
By Dannie Vinther
Forms & JS
Forms: Håndtering med JS
- 57