• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 인풋 onChange 한글 입력 오류

인풋 onChange 한글 입력 오류

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #73150

    김한결
    참가자
    인풋에 내용을 입력할때
    
    first name 칸에 이름을 입력하면 
    예 )  길동 입력
    ㄱ기길ㄷ도동 이렇게 입력이 됩니다
    last name 도 마찬가지구...
    혹시나해서 onChange를 때고 입력했더니 오류는 안나는데
    first name에 내용을 입력한 후
    last name으로 마우스를 클릭하면
    first name에 적었던 정보가 빈칸이 되버립니다...
    
    어쩌면 좋죠...? (유트브 강의인데.. 외국인이다보니까 한글 관련 문제가 빈번히 발생하는거 같아요..)
    
    
    참고 코드입니다
      const handleRegisterChange = (e) => {
        const { name, value } = e.target;
        setUser({ ...user, [name]: value });
      };
    <div className="reg_line">
                    <RegisterInput
                      type="text"
                      placeholder="First name"
                      name="first_name"
                      onChange={handleRegisterChange}
                    />
                    <RegisterInput
                      type="text"
                      placeholder="Surname"
                      name="last_name"
                      onChange={handleRegisterChange}
                    />
      const registerValidation = Yup.object({
        first_name: Yup.string()
          .required("What's your First name ?")
          .min(1, "Fisrt name must be between 1 and 16 characters.")
          .max(16, "Fisrt name must be between 2 and 16 characters.")
          .matches(/^[a-zA-Z가-힣]+$/, "Numbers and special characters are not allowed."),
        last_name: Yup.string()
          .required("What's your Last name ?")
          .min(1, "Last name must be between 1 and 16 characters.")
          .max(16, "Last name must be between 2 and 16 characters.")
          .matches(/^[a-zA-Z가-힣]+$/, "Numbers and special characters are not allowed."),
        email: Yup.string()
          .required(
            "You'll need this when you log in and if you ever need to reset your password."
          )
          .email("Enter a valid email address."),
        password: Yup.string()
          .required(
            "Enter a combination of at least six numbers,letters and punctuation marks(such as ! and &)."
          )
          .min(6, "Password must be atleast 6 characters.")
          .max(36, "Password can't be more than 36 characters"),
      });
     
    #73152

    김한결
    참가자
    onChange 를  onInput 으로 바꿧더니 말끔히 고쳐졌습니다. 기능에도 이상이 없네요
     
    근데 어째서  onChange 를 onInput 으로 바꿧더니  고쳐졌는지 이유를 모르겠습니다...
    
    제 생각엔 onChange 가 더 효과적일거같은데 단순히 한글 특성성 onInput 이 더 오류가 덜한건가요?
    #73158

    codingapple
    키 마스터
    state에 있던걸 쓸데없이 다시 input value로 집어넣고 있거나 
    이상한 라이브러리 때문일 수도 있습니다
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠