ercnam
6k
2018-04-20 09:54:02
10
890

사용자가 변경한 데이터만 변경내역에 기록하고 싶습니다.


사용자가 데이터를 입력/수정할때 따로 버튼이 구분되어 있지는 않습니다..

그냥 빈 공간에 입력하면 입력.. 기존 입력값을 수정하면 수정되는..


일단 데이터가 입력되어 있다고 치고

만약 이름, 주소, 전화번호 등이 있는데

주소만 변경했을 경우 어떻게 캐치를 할수 있을까요?


제이쿼리의 change 같은건 사람이 직접 포커싱을 놓고 키보드로 타이핑 하거나 했을때만 호출되는걸로 아는데요

(val() 등으로 값을 넣을시 호출안됨)

제가 알고 있는게 맞나요? 틀린거라면 그냥 change 를 호출해서 

사용자가 변경한 값만 캐치할수 있을까요?


데이터를 최초 로딩할때 각 입력값마다 origin_ 이런식으로 변수에 저장해서

origin 과 최종 입력값을 대조해서 같지 않으면 변경된 것으로 간주하는 식으로 하기에는

다루는 입력값들이 좀 많은지라 어떻게 간소화 할수 있는 방법이 없나 궁금합니다.

0
  • 답변 10

  • 니플
    2018-04-20 10:02:09

    기존에 들어있던 데이터와 비교해서

    다르면 변경된 것이 아닌가요?


    아니면

    input을 새로 입력시 input에 클래스를 붙여서

    있는 것만 따로 처리하면 될 것 같습니다.

  • ercnam
    6k
    2018-04-20 10:11:51

    /

    그러니까 그 변경된 데이터를 어떻게 추려내는가에 대한 질문이었습니다..

    로딩시 원본 데이터를 따로 변수로 빼고 일일이 다 대조해보기엔 하드코딩이 될거같아 혹시 간단하게 해결할 방법을 물어본 거죠.


  • 니플
    2018-04-20 10:17:41

    제가 말한 두번째 방법은 어떠신가요?

  • ercnam
    6k
    2018-04-20 10:36:49

    /

    change 이벤트 호출될때나 val() 로 값을 바꿔넣을때 클래스를 붙이고

    클래스 붙은 것들을 each 돌면 좋을거 같네요

    ....근데 값을 변경했다가 되돌린 경우엔 어떻게 해야할까요....

  • 니플
    2018-04-20 10:39:21

    되돌린다는 것은 어떤 상황을 말하는 건가요?

  • ercnam
    6k
    2018-04-20 10:46:05

    /

    이름을 홍길동에서 임꺽정으로 변경했다가 다시 홍길동으로 되돌린다거나 하는것 말입니다.

    사실 크리티컬한 부분은 아닌지라 그렇게 심각하게 생각할 필요는 없겠다 싶지만요..

  • 니플
    2018-04-20 10:48:41

    되돌리는 기능이 별도로 있나요?

    없다면 사용자가 다시 입력하게 하면 되는 것같은데,,,

  • ercnam
    6k
    2018-04-20 10:50:58

    /

    그런 기능은 없습니다만

    말씀하신 클래스 붙이는 방식을 쓰면

    되돌리느라 입력하는 입력창에도 계속 클래스가 붙을거 같아서요..

    뭐 이 부분은 걍 넘어가는게 속편할거 같습니다..

    AtoZ 다 고려하기엔 너무 손도 많이 가고 효과는 미미할거 같네요....

  • 니플
    2018-04-20 10:55:17

    되돌리는 기능이 별도로 없다면

    입력하는 기능을 그대로 사용하면 되지않을까요?


    되돌리는 상황이 어떤 것인지 잘 모르겠네요

    그만큼 중요하게 봐야하는 상황인지를 모르겠습니다.

  • ercnam
    6k
    2018-04-20 11:07:59

    /

    아뇨 일단 해당 상황은 고려하지 않을 생각입니다.

    일단은 기본값 > 변경 하는 경우만 적용해보죠 뭐..

    답변 감사합니다

  • 로그인을 하시면 답변을 등록할 수 있습니다.