저번 시간에는 JS에서 css에 정의된 클래스들을 사용해서 HTML의 element들을 만져봤다.
오늘은 <form>(새로고침)이나 <a>(페이지 이동)태그들의 기본동작들을 막는 함수를 살펴봤다.
1. 해당하는 element들에게 addEventListenr를 추가해준다.
[index.js]
const loginForm = document.querySelector('#login-form')
const loginInput = document.querySelector('#login-form input')
const link = document.querySelector('a');
function onLoginSubmit(info) {
info.preventDefault();
const username = loginInput.value;
console.log(username)
}
function handleLinkClick(info){
console.log(info)
info.preventDefault();
alert('clicked')
}
loginForm.addEventListener('submit', onLoginSubmit);
link.addEventListener('click', handleLinkClick);
2. addEventListener에 정의된 함수 인자로 아무 변수나 지정해준다.
[index.js]
function onLoginSubmit(info) {
info.preventDefault();
const username = loginInput.value;
console.log(username)
}
addEventListener가 loginForm.addEventListener('submit', onLoginSubmit); 를 실행할 때,
onLoginSubmit함수 첫 번째 인자에 정보를 전달해준다.
3. 전달받은 인자의 함수 preventDefault()를 실행해주면 html의 기본동작을 막을 수 있다.
[index.js]
function onLoginSubmit(info) {
info.preventDefault();
const username = loginInput.value;
console.log(username)
}
이렇게 되면 <form>태그를 submit 해도 페이지가 새로고침되지 않는다.
'JS' 카테고리의 다른 글
JS에서 HTML element style - className 변경하기 (0) | 2023.12.31 |
---|---|
JS에서 HTML 가져오기 (1) | 2023.12.30 |
JS 배열 관련 함수1 (0) | 2023.12.13 |
[인프런x코드캠프] 훈훈한 Javascript_15日, 16日 (완강) (5) | 2023.02.08 |
[인프런x코드캠프] 훈훈한 Javascript_14日 (2) | 2023.02.06 |