본문 바로가기
STUDY/javascript

[JavaScript] <form>, 조건문(if/if else/else if)

by 히컵 2024. 8. 26.

 

 

 

 

<form>과 기능을 만들면서 조건문을 배워 보자.

<div class="black-bg">
    <div class="white-bg">
        <h4>로그인하세요</h4>
        <form action="success.html">
            <div class="my-3">
              <input type="text" class="form-control" id="email">
             </div>
             <div class="my-3">
               <input type="password" class="form-control">
             </div>
             <button type="submit" class="btn btn-primary">전송</button>
             <button type="button" class="btn btn-danger" id="close">닫기</button>
          </form> 
    </div>
</div>

Bootstrap을 이용해서 모달창 안에 <form>을 만들었다.

그리고 같은 폴더에 success.html 파일을 하나 만들어 '전송 완료' 이라는 내용을 넣었다.

<form>은 서버로 유저 정보를 전송하려고 사용한다. action="url"에 작성한 url로 폼 데이터가 전송된다.

(현재 서버가 없기 때문에 로컬에 파일, success.html 을 만든 것)

 

(주의) <form>안의 <button>은 전송 버튼은 type="submit"으로 그 외에 버튼은 type="button"으로 만들어야 한다.

 

 

💡 첫 <input>에 입력한 값이 아무것도 없으면 전송 버튼 누를 때 알림창을 띄워 보자.

전송 버튼 눌렀을 때 <input>에 입력된 값이 공백이면 알림창 띄워 주세요

그러면 자바스크립트로 코드를 작성하면 되는데 "이런 경우에만 코드를 실행해라"라는 표현법은 배우지 않았다.

이 경우네는 자바 스크립트 if 문법을 사용하면 된다.

 

 


 

 

if문

if (조건식){
	실행할 코드
}

조건식이 참일 때 중괄호 안에 코드를 실행한다.

if (3>1){
	console.log('안녕');
}

조건식란에는 대부분의 경우 비교연산자를 넣는다. 

더보기

== : 같다

>, < : 크거나 작다

>=, <= : 크거나 같다, 작거나 같다

!= : 같지 않다, 다르다

 

if else문

if (조건식){
	조건식이 참일 때 실행할 코드
} else {
	조건식이 거짓일 때 실행할 코드
}

조건식이 참이 아닐 경우 실행해 달라는 코드를 작성하고 싶으면 else절을 사용하면 된다.

if (3 > 1){
	console.log('안녕');
} else{
	console.log('반가워');
}

 

 

 


 

다시 돌아와서 첫 <input>에 입력한 값이 아무것도 없으면 전송 버튼 누를 때 알림창이 뜨도록 코드를 작성해 보자.

 

1. 전송 버튼을 누르면

$('form').on('submit', function(){
    input에 입력한 값이 공백인 경우 알림 띄위기
});

버튼에 click 이벤트 리스너를 달아도 되고, <form>태그 찾아서 submbit 이벤트 리스너를 달아도 똑같이 동작한다.

폼 전송이 되면 <form> 태그에서 submit 이벤트도 발생하기 때문이다.

원하는 html을 태그명으로 찾고 싶으면 마침표나 # 없이 $('태그명')만 적으면 된다.

 

2. input에 입력한 값이 공백인 경우 알림창 띄위기

$('form').on('submit', function(){
    if(document.getElementById('email').value == ''){
        alert('아이디를 입력하세요.');
    }
});

이렇게 작성했떠니 의도대로 잘 동작한다.

jQuery로 짧게 쓰려면 $('#email').val() == ''쓰면 된다.

 

(+) 폼 전송 막는 법

$('form').on('submit', function(e){
    if(document.getElementById('email').value == ''){
        e.preventDefault();
        alert('아이디를 입력하세요.');
    }
});

이벤트 리스너 콜백함수에 e라는 파라미터를 추가하고 e.preventDefault()라고 쓰면 폼 전송이 되지 않는다.

 

 


 

else if 문법

else if 는 if문 뒤에 몇번이고 원하는 만큼 붙일 수 있다.

if (1 == 3){
	console.log('맞아요1');
} else if(3==3){
	console.log('맞아요2');
}

else if 뜻은 "그게 아니면 만약에"라는 뜻이다. 

그래서 1 == 3 비교해 보고 그게 아니면 3 == 3 비교해 보고 참이면 맞아요2를 출력한다.

 

if (1 == 3){
	console.log('맞아요1');
} else if(3==3){
	console.log('맞아요2');
} else if(4==4){
	console.log('맞아요3');

이 코드는 콘솔창에 무엇이 출력될까?

'맞아요2'다.

 

else if문의 경우 else문의 특징도 가지고 있어서 조건식이 참이면 뒤에 오는 else if문은 실행하지 않는다.

 

if (1 == 3) {
      console.log('맞아요1')
} else if (3 == 3){
      console.log('맞아요2')
}
if (1 == 3) {
      console.log('맞아요1')
} 
if (3 == 3){
      console.log('맞아요2')
}

굳이 위처럼 else if문을 사용하지 않고도 if문 2개만 써도 똑같은 기능을 구현할 수 있다.

그러면 else if문은 왜 필요한 걸까?

 

if문만 2개 있으면 → 위에 있는 if문이 참이든 거짓이든 두번째 if문도 항상 실행된다.

if + else if가 있으면 →   else 덕분에 위의 조건식이 참이면 else 뒤는 스킵한다.

그래서 조건식을 여러번 검사하는데 중간에 참이 나올 경우 코드 실행을 중단하고 싶으면 else if를 사용하면 된다.

 

 

 

 

 

 

* 이 포스팅은 코딩애플 강의를 토대로 작성하였습니다.