super();
this.state = {
memberId: "",
memberPasswd: "",
super();
this.state = {
memberId: "",
memberPw: "",
handleClick = (e) => {
const { memberId, memberPasswd} = this.state
if( memberId.length < 1) {
alert("아이디 항목은 필수 입력값입니다.")
} else if ( memberPasswd.length < 4) {
alert("패스워드 항목이 4자(개) 이상으로 해주십시오.")
}
}
handleClick = () => {
const { memberId, memberPw } = this.state
if (!memberId.length) alert("아이디 항목은 필수 입력값입니다.")
else if ( memberPw.length < 4) alert("패스워드 항목이 4자(개) 이상으로 해주십시오.")
}
// 클론하는 로그인 홈페이지에 맞게 적용하였음.
enterValue = (e) => {
const { memberId, memberPasswd} = this.state
if (e.key === "Enter") {
if( memberId.length < 1) {
alert("아이디 항목은 필수 입력값입니다.")
} else if ( memberPasswd.length < 4) {
alert("패스워드 항목이 4자(개) 이상으로 해주십시오.")
}
}
}
enterValue = () => {
const { memberId, memberPw} = this.state
if (e.key !== "Enter") return
if(!memberId.length) alert("아이디 항목은 필수 입력값입니다.")
else if (memberPw.length < 4) alert("패스워드 항목이 4자(개) 이상으로 해주십시오.")
}
// 클론하는 로그인 페이지에 맞게 적용하였음.
.loginBtnBlack {
margin-top: 80px;
background-color: var(--black-color);
color: var(--white-color);
font-size: var(--font-small);
font-weight: 700;
line-height: 38px;
height: 40px;
width: 100%;
border: none;
outline: none;
cursor: pointer;
}
레이아웃에 영향을 주는 속성일 수록 중요하다.
아래 내용 참고하셔서 순서 재배치하기!
.loginBtnBlack {
width: 100%;
height: 40px;
margin-top: 80px;
color: var(--white-color);
background-color: var(--black-color);
border: none;
outline: none;
font-size: var(--font-small);
font-weight: 700;
line-height: 38px;
cursor: pointer;
}
li {
border: 2px solid var(--black-color);
// width: 49%;
li {
border: 2px solid var(--black-color);
font-size: var(--font-small);
font-weight: 700;
border: 2px solid var(--black-color);
box-sizing: border-box;
font-size: var(--font-small);
font-weight: 700;
border: 2px solid var(--black-color);
input {
width: 100%;
height: 35px;
padding: 9px 2px 2px 0;
border: none;
outline: none;
font-size: var(--font-micro);
}
input::placeholder {
color: #9e9e9e;
font-size: var(--font-medium);
font-weight: 700;
}
input {
width: 100%;
height: 35px;
padding: 9px 2px 2px 0;
border: none;
outline: none;
font-size: var(--font-micro);
&::placeholder {
color: #9e9e9e;
font-size: var(--font-medium);
font-weight: 700;
}
}
<label className="loginBoxDesc">
<input onKeyUp={this.enterValue} onChange={this.handleInput} id="memberId" name="memberId" type="text" placeholder="아이디를 입력해주세요."></input>
</label>
<label className="loginBoxDesc">
<input onKeyUp={this.enterValue} onChange={this.handleInput} id="memberId" name="memberId" type="text" placeholder="아이디를 입력해주세요."/>
</label>
<label className="loginBoxDesc">
<input onKeyUp={this.enterValue} onChange={this.handleInput} id="memberId" name="memberId" type="text" placeholder="아이디를 입력해주세요."/>
</label>
<label className="loginBoxDesc">
<input onKeyUp={this.enterValue} onChange={this.handleInput} name="memberId" type="text" placeholder="아이디를 입력해주세요."/>
</label>
<div>
<div className="loginTitle">
class Login extends React.Component {
constructor() {
super();
this.state = {
memberId: "",
memberPw: "",
}
}
...
render() {
return (
<div className="Login">
<div className="titleAnimation">
<h2>LOGIN</h2>
<span className="snsBg"><img src="https://rawrow.com/web/upload/mundane/login_kakao.png" alt="카카오계정 로그인"/></span>
<span className="snsText">kakao login</span>
<span className="snsBg">
<img src="https://rawrow.com/web/upload/mundane/login_kakao.png" alt="카카오계정 로그인"/>
</span>
<span className="snsText">kakao login</span>
article {
position: relative;
max-width: 420px;
margin: 0 auto;
article {
max-width: 420px;
margin: 0 auto;
border: 2px solid #111;
border-left: none;
border-right: none;
border-top: 2px solid #111;
border-bottom: 2px solid #111;
.loginBoxDesc {
display: block;
width: 100%;
<div className="loginBox first">
<span className="loginBoxTitle">아이디</span>
<label className="loginBoxDesc">
<input onKeyUp={this.enterValue} onChange={this.handleInput} name="memberId" type="text" placeholder="아이디를 입력해주세요."/>
</label>
</div>
<div className="loginBox">
<span className="loginBoxTitle">비밀번호</span>
<label className="loginBoxDesc">
<input onKeyUp={this.enterValue} onChange={this.handleInput} name="memberPw" type="text" placeholder="비밀번호를 입력해주세요."/>
</label>
</div>
<div className="loginBox first">
<span className="title">아이디</span>
<label className="desc">
<input onKeyUp={this.enterValue} onChange={this.handleInput} name="memberId" type="text" placeholder="아이디를 입력해주세요."/>
</label>
</div>
<div className="loginBox">
<span className="title">비밀번호</span>
<label className="desc">
<input onKeyUp={this.enterValue} onChange={this.handleInput} name="memberPw" type="text" placeholder="비밀번호를 입력해주세요."/>
</label>
</div>
상준님의 성실함을 보니 정말 훌륭한 개발자가 되실거 같아요 :) 응원합니다!