본문 바로가기
부트캠프 개발일지 2023-2024/Bootcamp 생활기록

[2주차] 웹 퍼블리싱 - 네이버 GBN 만들기

by whereanna00 2023. 10. 11.

네이버 GBN 만들기

 

폼 태그

폼태그는 주로 사용자가 입력하는 값을 받아 처리하기 위해 사용됨. 현업에서 매우 자주 사용되고 중요하므로 기본 개념.

 

기본 폼 태그

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
  </head>
  <body>
    <form action="#" accept-charset="utf-8" name="information" method="get">
      <!-- filedset tag는 서로 관련이 있는 것들을 묶을 때 사용된다. -->
      <fieldset > 
        <!-- form tag 의 제목은 legend tag 로 하는 것이 정석, 상황에 따라서 다른 태그로도 사용함-->
        <legend>개인정보</legend>
        <div>이름 : <input type="text" name="name" /></div>
        <div>나이 : <input type="text" name="age" /></div>
        <div>비밀번호 : <input type="password" name="password" /></div>
      </fieldset>
      <br />
      <fieldset >
        <legend>기타정보</legend>
        <div>취미 : <input type="text" name="hobby" /></div>
        <div>특기 : <input type="text" name="specialty" /></div>
      </fieldset>
    </form>
  </body>
</html>

 

*html 주석 단축키 (commnad + / )

 

 

폼 태그 실습

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <!-- jQuery 사용 -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  </head>
  <body>
    <form id="login">
      <div>아이디 : <input type="input" id="username" /></div>
      <div>비밀번호 : <input type="password" id="password" /></div>
      <div>
        <!-- label 사용하는 이유: 체크박스를 감싸고 있는 label은 사용자가 체크박스말고도 label로 감싸져 있는 어느 텍스트라도 클릭하면 체크박스가 활성화된다 -->
        <label><input type="checkbox" id="checkbox"/> 아이디 패스워드 저장</label>
      </div>
      <button type="submit">제출</button>
    </form>

    <script>
      // login(아이디이름) 이라는 폼이 제출되었을 때 아래와 같은 이벤트를 부여한다
      $('#login').submit(function (event) {
        event.preventDefault(); // 원래 로그인을 하면 화면을 로딩하는데, 이 함수는 새로고침하는 동작을 막는다. 새로고침하면 데이터가 날라가기 때문에.
        var username = $('#username').val(); // 아이디가 username 인 value 값을 왼쪽에 정의된 변수에 저장
        var password = $('#password').val(); // 아이디가 paswwrd 인 value 값을 왼쪽에 정의된 변수에 저장
        var isChecked = !!$('#checkbox:checked').val(); //아이디가 checkbox인 것 중에 checked가 된 값을 왼쪽에 정의된 변수에 저장. !!의 뜻은, true/false 로 나타내기 위해 써줌. 만약에 이 !!가 없고, checkbox의 vlaue에 어떤 값을 넣어주면, 그 값이 alert 됨
        alert(username + ' / ' + password + ' / ' + isChecked);
      });

      // 기본 form
      //  $('#login').submit();
    </script>
    
  </body>
</html>
 

 

 

네이버 gbn 기본골격 구조

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="style.css" />
  </head>

  <body>
    <div id="search" class="search_area">
      <form id="sform" name="sform" action="https://search.naver.com/search.naver" method="get" role="search">
        <fieldset>
          <legend class="blind">검색</legend>
          <div class="green_window">
            <input
              id="query"
              name="query"
              type="text"
              maxlength="255"
              class="input_text"
              tabindex="1"
              autocomplete="off"
              placeholder="검색어를 입력해 주세요."
            />
          </div>
          <button id="search_btn" type="submit" title="검색" tabindex="3" class="btn_submit">
          <!-- tabeindex는 클릭할 수 있는 버튼의 요소가 어떤 번호를 가지고 있는지 구분하기 위해 넣음-->
            <span class="blind">검색</span>
            <span class="ico_search_submit"></span>
          </button>
        </fieldset>
      </form>

      <div class="autocomplete">
      <!-- autocomplete = 아래 화살표: 자동완성 기능 -->
        <a href="#" role="button" id="nautocomplete" tabindex="2" class="btn_arw _btn_arw fold" aria-pressed="true" data-atcmp-element="">
          <span class="blind">자동완성 레이어</span>
          <span class="ico_arr"></span>
        </a>
      </div>
    </div>
  </body>
</html>
728x90
반응형