Styring med JavaScript
Opsamle og vise data
Nulstille
Fjerne browser-popup
querySelector
function()
addEventListener
textContent
Recap
querySelector()
function()
addEventListener()
textContent
)
Recap
querySelector(
function()
addEventListener()
classList
)
<h1>Overskrift</h1>h1querySelector(
function()
addEventListener()
classList
)
<h1>Overskrift</h1>h1querySelector(
function()
addEventListener()
classList
)
<h1>Overskrift</h1>h1" "
querySelector(
function()
addEventListener()
classList
)
<h1>Overskrift</h1>h1" "
document.
Kig efter "h1" i HTML-dokumentet
querySelector(
function()
addEventListener()
textContent
)
h1
" "
document.
const heading =
querySelector(
function()
addEventListener()
textContent
)
h1
" "
document.
const heading =
querySelector(
function()
addEventListener()
textContent
)
h1
" "
document.
const heading =
heading.
querySelector(
function() {
addEventListener()
textContent
)
h1
" "
document.
const heading =
heading.
.remove
= "Hello JS"
querySelector(
function() {
addEventListener()
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
= "Hello JS"
querySelector(
function() {
addEventListener(
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
querySelector(
)
button
" "
document.
const btn =
)
= "Hello JS"
querySelector(
function() {
addEventListener(
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
querySelector(
)
button
" "
document.
const btn =
)
= "Hello JS"
querySelector(
function() {
addEventListener(
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
querySelector(
)
button
" "
document.
const btn =
btn.
)
= "Hello JS"
querySelector(
function sayHello() {
addEventListener(
textContent
)
h1
" "
document.
const heading =
heading.
.remove
}
querySelector(
)
button
" "
document.
const btn =
btn.
)
"click", sayHello
= "Hello JS"
Vi kan "lytte" til formularen
const form = document.querySelector("form");Først laver vi en henvisning
Vi kan "lytte" til formularen
const form = document.querySelector("form");
form.addEventListener( , ...);'invalid''submit'Vi kan "lytte" til formularen
const form = document.querySelector("form");
form.addEventListener( , ...);'invalid''submit'Lyt efter submit (når jeg indsender)
Vi kan "lytte" til formularen
const form = document.querySelector("form");
form.addEventListener( , ...);'invalid''submit'Lyt efter, om der er felter, der er ugyldige
event.preventDefault();<a href="something.html">Se mere</a>Links ville ikke linke, osv.
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
function cancelPopup(event) {
event.preventDefault();
form.querySelector(":user-invalid").focus();
}
form.addEventListener('invalid', cancelPopup, true);
Fjern browser-popup
Copy/paste moment
øvelse 10
Sørg for, at browserens default popup-vindue ikke vises ved fejl i formularen.
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?
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
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
øvelse 11
Stop browserens reload og nulstil felterne med ved submit.
.reset()
.preventDefault()
FormData
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
const form = document.querySelector("form");
function handleSubmit(event) {
const formData = new FormData(form);
const firstName = formData.get("first_name")
}.get()
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()
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
<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
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();
}øvelse 12
Stop browserens reload og nulstil felterne med ved submit.
.textContent
new FormData()