-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Part1 전소은 week4 #168
base: main
Are you sure you want to change the base?
The head ref may contain hidden characters: "part1-\uC804\uC18C\uC740-week4"
Part1 전소은 week4 #168
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
안녕하세요
소은님!
CSS만 만지다가 이제 드디어 JS까지 입문하셨네요.
적은 코드량으로 적절하게 잘해주셨다고 보입니다~~
질문 남겨주신 것은 그냥 심화 내용을 다 못했어요~ 라는 것이지요?!
신나게 피드백하다가...순한맛 버전으로 좀 줄여서 했는데요
다음에는 매운맛으로 한번 받아보세요!!
몇가지 습관만 갖춰도 많이 좋아지실 것 같습니다!
그리고 PR 타겟 브랜치!! 고쳐주셔야합니다~~
const emailInput = document.getElementById("signup-email"); | ||
const errorMessage = document.getElementById("error-message"); | ||
const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const 👍
@@ -0,0 +1,83 @@ | |||
const emailInput = document.getElementById("signup-email"); | |||
const errorMessage = document.getElementById("error-message"); | |||
const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
분리는 잘하셨고요!
불리언을 반환하는 값이라면 isEmailRegex
과 같은 표현으로 바꾸는게 낫지 않을까요?
const errorMessage = document.getElementById("error-message"); | ||
const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/; | ||
|
||
function showError(input, errorElement, errorMessage) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
function showError(input, errorElement, errorMessage) { | |
function showError({ input, errorElement, errorMessage }) { |
객체로 받는게 어떨까요!?
const joinButtons = document.getElementsByTagName("button")[0]; | ||
const joinMessage = document.getElementsByClassName("join-message")[0]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const joinButtons = document.getElementsByTagName("button")[0]; | |
const joinMessage = document.getElementsByClassName("join-message")[0]; | |
const [joinButtons] = document.getElementsByTagName("button"); | |
const [joinMessage] = document.getElementsByClassName("join-message"); |
배열 구조 분해 할당을 활용해보세요 :)
|
||
// 이메일 유효성 검사 | ||
if ( | ||
(emailInput.value === "" && | ||
!emailRegex.test(emailInput.value) && | ||
emailInput.value === "[email protected]") || | ||
!/^(?=.*[a-zA-Z])(?=.*\d)/.test(passwordInput.value) || | ||
passwordInput.value.length < 8 || | ||
passwordInput.value !== passwordInputOmt.value | ||
) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// 이메일 유효성 검사 | |
if ( | |
(emailInput.value === "" && | |
!emailRegex.test(emailInput.value) && | |
emailInput.value === "[email protected]") || | |
!/^(?=.*[a-zA-Z])(?=.*\d)/.test(passwordInput.value) || | |
passwordInput.value.length < 8 || | |
passwordInput.value !== passwordInputOmt.value | |
) { | |
const isValidEmail = (emailInput.value === "" && | |
!emailRegex.test(emailInput.value) && | |
emailInput.value === "[email protected]") || | |
!/^(?=.*[a-zA-Z])(?=.*\d)/.test(passwordInput.value) || | |
passwordInput.value.length < 8 || | |
passwordInput.value !== passwordInputOmt.value | |
if (isValidEmail) { |
이렇게 뽑아낼 수 있겠죠?!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
week2-1.js
이과 코드가 굉장히 비슷한데 어떤 관계일까요..?!
|
||
function showError(input, errorElement, errorMessage) { | ||
input.classList.add("error"); | ||
errorElement.innerText = errorMessage; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이렇게 메세지를 받아서 공통으로 분리하다니 굉장히 좋은 시도네요!
const passwordInput = document.getElementById("signup-password"); | ||
const errorMessage2 = document.getElementById("error-message2"); | ||
const passwordInputOmt = document.getElementById("signup-password2"); | ||
const errorMessage2Omt = document.getElementById("error-message2-omt"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이런 선언들은 다 가장 위에 모아놓는게 어때요?!
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title></title> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
헛.. 비어있어요!
이정도 태그는 꼭 채워주시는게 좋습니다
요구사항
기본
[x][기본]이메일 input에서 focus out 할 때, 값이 없을 경우 input에 빨강색 테두리와 아래에 “이메일을 입력해주세요.” 빨강색 에러 메세지가 보이나요?
[x][기본]이메일 input에서 focus out 할 때, 이메일 형식에 맞지 않는 값이 있는 경우 input에 빨강색 테두리와 아래에 “올바른 이메일 주소가 아닙니다.” 빨강색 에러 메세지가 보이나요?
[x][기본]이메일 input에서 focus out 일 때, input 값이 [email protected] 일 경우 input에 빨강색 테두리와 아래에 “이미 사용 중인 이메일입니다.” 빨강색 에러 메세지가 보이나요?
[x][기본]비밀번호 input에서 focus out 할 때, 값이 8자 미만으로 있거나 문자열만 있거나 숫자만 있는 경우, input에 빨강색 테두리와 아래에 “비밀번호는 영문, 숫자 조합 8자 이상 입력해 주세요.” 빨강색 에러 메세지가 보이나요?
[x][기본]비밀번호 input과 비밀번호 확인 input의 값이 다른 경우, 비밀번호 확인 input에 빨강색 테두리와 아래에 “비밀번호가 일치하지 않아요.” 빨강색 에러 메세지가 보이나요?
[x][기본]회원가입을 실행할 경우, 문제가 있는 경우 문제가 있는 input에 빨강색 테두리와 에러 메세지가 보이나요?
[x][기본]이외의 유효한 회원가입 시도의 경우, “/folder”로 이동하나요?
[x][기본]이메일: [email protected], 비밀번호: codeit101 으로 로그인 시도할 경우, “/folder” 페이지로 이동하나요?
[x][기본]비밀번호 input에서 focus out 할 때, 값이 없을 경우 아래에 “비밀번호를 입력해주세요.” 에러 메세지가 보이나요?
[][기본]이외의 로그인 시도의 경우 이메일, 비밀번호 input에 빨강색 테두리와 각각의 input아래에 “이메일을 확인해주세요.”, “비밀번호를 확인해주세요.” 빨강색 에러 메세지가 보이나요?
[][기본]회원가입 버튼 클릭 또는 Enter키 입력으로 회원가입 되나요?
[x][기본]이메일, 비밀번호 input에 에러 관련 디자인을 Components 영역의 에러 케이스로 적용했나요?
심화
[][심화]눈 모양 아이콘 클릭시 비밀번호의 문자열이 보이기도 하고, 가려지기도 하나요?
[][심화]비밀번호의 문자열이 가려질 때는 눈 모양 아이콘에는 사선이 그어져있고, 비밀번호의 문자열이 보일 때는 사선이 없는 눈 모양 아이콘이 보이나요?
[][심화]로그인, 회원가입 페이지에 공통적으로 사용하는 로직이 있다면, 반복하지 않고 공통된 로직을 모듈로 분리해 사용했나요?
주요 변경사항
스크린샷
week2.html_signup-email.test.40codeit.com.signup-password.codeit101.signup-password2.codeit101.-.Avast.Secure.Browser.2023-11-13.02-07-36.mp4
week2.html_signup-email.test.40codeit.com.signup-password.codeit101.signup-password2.codeit101.-.Avast.Secure.Browser.2023-11-13.02-07-36.mp4
멘토에게
-심화 부분은 시도했으나 구현이 안됐습니다.
-위 두 가지도 구현이 힘들었습니다.