inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프로그래밍 시작하기 : 웹 입문 (Inflearn Original)

실습: 회원가입 폼 검증하기 - 1 (3-20)

콘솔이 안나옵니다.

782

anny1515

작성한 질문수 2

0

자바스크립트 연결은 alert창이 떠서 확인 했는데

밑에 console.log를 했을때 적용이 안됩니다.

'가입하기'버튼만 누르면 그냥 새로고침만 됩니다. 

뭐가 잘못되었을까요...?.

window.addEventListener('load',function(){ //이벤트를 여러개 지정 가능
	clearMessages();

	var formElement=document.querySelector('form');
	formElement.onsubmit=submitForm; //on지정후 이벤트명 지정

});// 페이지가 로드되는 시점부터 코드가 실행됨을 보장

function clearMessages(){
	var messages=document.getElementsByClassName('alert-message');
	//class이름을 이용해서 HTML요소들을 가져오는 메소드
	for (var i=0; i<messages.length; i++){
		messages[i].style.display='none';
	}
}

function submitForm() {
	//account info
	var accountInput=document.querySelector('input[name="account"]');
	//document.querySelector: DOM의 자식 노드를 순회하여 매개변수의 선택자를 찾아 반환
	var passwordInput=document.querySelector('input[name="password"]');
	var passwordConfirmInput=document.querySelector('input[name="password2"]');

	//select, radio, checkbox
	var selectInput=document.querySlector('select[name="birth-month"]');
	var radioInput=document.querySlector('input[name="gender"]:checked');
	var checkInput=document.querySlector('input[name="agree"]');

	console.log(accountInput.value);
	console.log(passwordInput.value);
	console.log(passwordConfirmInput.value);

	console.log(selectInput.value);
	console.log(radioInput.value);
	console.log(checkInput.value);

	return false; //return false: 실행이 안되도록 지정
}

javascript HTML/CSS

답변 2

0

itjustbong

안녕하세요,

anny1515님!

HTML과 JS코드를 같이 올려주셔서 감사합니다.

확인해본 결과,

1.JS파일에 "querySelector"의 오타가 있습니다.

//select, radio, checkbox 

의 주석 아래있는 코드에 "querySlector" 라고 오타가 있어,
에러가 뜬 상태로 리턴되어 원하는 콘솔 로그 값이 안 뜨고, 새로고침만 되는 것으로 추정됩니다.

2. anny1515 님께서 질문하신 부분은 1번만 참고하셔도 해결이 되지만,
<form action="validation.html" method="POST"></form>
form태그가 열리자 마자 닫히는 태그로 되어 있어 알려드립니다.

혹시 에러가 발생하신다면, 확인해보시길 바랍니다.

또한 에러를 찾는 콘솔로그의 방법 중에 하나로,
페이지의 새로고침과 관계없이 콘솔의 내용을 누적(?)해서 확인할 수 있는 방법이 있습니다.

위 사진과 같이 콘솔창의 톱니바퀴 모양을 누르시고,
preserve Log를 누르시면,  오류를 찾는데에 도움이 되는 기능을 활용해 보실 수 있습니다!😃

감사합니다

0

anny1515

<!DOCTYPE html>
<html lang="ko">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="keyword" content="회원가입,html">
	<style>
		.alert-message {
			margin: 0 10px;
			color: #f09090;
			font-size: 14px;
			font-weight: 900;
		}
	</style>
	<title>회원가입</title>
</head>
<body>
	<h1>회원가입</h1>
	<hr/>
	<fieldset>
		<legend>계정 정보</legend>
		<form action="validation.html" method="POST"></form>
			<div>
				<label for="id-account">아이디</label>
				<input type="text" name="account" id="id-account" required="required">
				<span class="alert-message" id="account-alert">TEST</span>
			</div>
			<!-- //아이디 -->
			<div>
				<label for="id-password">비밀번호</label>
				<input type="password" name="password" id="id-password" required="required">
				<span class="alert-message">TEST</span>
			</div>
			<!-- //비밀번호 -->
			<div>
				<label for="id-password2">비밀번호확인</label>
				<input type="password" name="password2" id="id-password2" required="required">
				<span class="alert-message">TEST</span>
			</div>
			<!-- //비밀번호확인 -->
	</fieldset>

	<fieldset>
		<legend>프로필</legend>
		<div>
			<label for="id-name">이름</label>
			<input type="text" name="name" id="id-name" required="required">
			<span class="alert-message" id="account-alert">TEST</span>
		</div>
		<!-- //이름 -->
		<div>
			<label>생년월일</label>
			<input type="number" name="birth-year" placeholder="년" min="1900" max="2021" required="required">
			<span class="alert-message" id="account-alert">TEST</span>
			<select name="birth-month">
				<option>월</option>
				<option value="1">1월</option>
				<option value="2">2월</option>
				<option value="3">3월</option>
				<option value="4">4월</option>
				<option value="5">5월</option>
				<option value="6">6월</option>
				<option value="7">7월</option>
				<option value="8">8월</option>
				<option value="9">9월</option>
				<option value="10">10월</option>
				<option value="11">11월</option>
				<option value="12">12월</option>
			</select>
			<input type="number" name="birth-day" placeholder="일" min="1" max="31" required="required">
		</div>
		<!-- //생년월일 -->
		<div>
			<label>성별</label>
			<input type="radio" name="gender" id="id-gender-male" value="male"/>
			<label for="id-gender-male">남</label>
			<input type="radio" name="gender" id="id-gender-female" value="female"/>
			<label for="id-gender-female">여</label>
			<input type="radio" name="gender" id="id-gender-unknown" value="unknown"/>
			<label for="id-gender-unknown">기타</label>
			<span class="alert-message" id="account-alert">TEST</span>
		</div>
		<!-- //성별 -->
		</fieldset>
			<div>
				<input type="checkbox" name="agree" id="id-agree">
				<label for="id-agree">사이트 이용약관과 개인정보 수집 방침에 동의합니다.</label>
			</div>
			<input type="submit" value="가입하기"/>
			<button type="submit">가입하기</button>
		</form>
		<script type="text/javascript" src="scripts/validation.js"></script>
	</fieldset>
</body>
</html>

unregistered 이라 뜨며 작동하지 않습니다.

0

50

1

공부한 내용을 블로그에 정리해서 올려도되나요?

0

93

1

sublime text 설치 불가

0

176

1

사진과 본문 내용에 패딩이 40px 들어가 있는데 이유를 모르겠습니다

0

98

1

처음 질문과 옵션 관련 질문입니다.

0

89

1

마지막에 news 관련 질문

0

81

1

태그 닫는 단축키가 뭔가요?

0

169

1

강의에 사용하는 예제 코드 자료 있나요?

0

384

1

회원가입 폼 검증하기 실행이 안됩니다.

0

273

1

이미지랑 아이콘 파일을 어떻게 찾아요?

0

350

1

VS 코드는 절대 경로랑 상대 경로로 상위 문서 접근이 차단되어 있네요

0

475

0

프로젝트 고민 해결이 안되어 다시 올립니다.

0

391

1

프로젝트 고민 다시올립니다.

0

445

1

친구와의 프로젝트 고민

0

418

1

화면 오른쪽 스크롤이 넘어가질 않아요!

0

514

1

학과 설정

0

328

2

회원가입폼 검증 -2 에서 문제가생겼습니다

0

327

1

card.html 버튼 위치

0

599

1

인스타그램 코드 작성 후 동작을 해보았는데 버튼을 눌러도 넘어가질않네요

0

355

2

carousel의 footer부분에

0

292

1

margin 값에 관한 질문입니다.

0

403

1

function clearMessages() 함수의 원리를 알고싶습니다

0

315

1

removeEventListener

0

232

1

버튼을 눌렀을때 케러셀의 이동

0

806

2