혹시, INPUT 포커스 전 value 값을 임시로 특정변수에 담아두려면?

혹시, INPUT 포커스 전 value 값을 임시로 특정변수에 담아두려면?

QA

혹시, INPUT 포커스 전 value 값을 임시로 특정변수에 담아두려면?

본문

https://sir.kr/qa/292026 질문의 연장선인데,

 

    $('.bp').on('click focusin', function() {
            this.value = '';
    });
    $('.bp').on('focusout', function() {
        if(this.value == 0 || this.value == '') {
            this.value = 0;
        }
    });

 

위 코드 경우,

입력창에 0 이상의 숫자 (예: 1000) 입력한 상태에서 다시 재수정을 위해 포커스를 줬다가

맘이 변해서 수정없이 포커스를 해제할 경우 1000이 사라지고 0이 입력되는데,

그대로 1000이 있게 하려 합니다.

입력한 value 값이 폼 액션링크 통해 전달되기 전의 휘발성 값이라 

아무래도 포커스 찍을 때 현재 보유 중인 값을 임시변수에 먼저 담아두면 가능할까 싶어서

아래처럼 수정해봤는데... 안 되네요. 

 

    var bp = '';

    $('.bp').on('click focusin', function() {
            bp = $('.bp').val();  <----현재값을 bp 변수에 임시로 담아두기
            this.value = '';
    });
    $('.bp').on('focusout', function() {
        if(bp == 0 && (this.value ==0 || this.value == '')) {
            this.value = 0;
        }
        else if(bp > 0 && this.value == '') { <-- 수정없이 포커스 빠져나갈 때
            this.value = bp; <-- 기존값 넣기
        }
    });

이 질문에 댓글 쓰기 :

답변 1

$( "[name^='race']" ).on( "focus", function() {
    if (this.value == 0) this.value = "";    
})
$( "[name^='race']" ).on( "focusout", function() {
    if (this.value == "") this.value = 0;    
})
 

슈와이 님, 위 코드를 넣으니까,,포커스 할 때 기존 입력값이 그대로 찍히는데,
수정위해 다시 커서 찍을 때는 비워졌다가 기존 입력값을 수정 없이 빠져나오면 기존 입력값이 다시 보이는 형태로 하려면 어떻게 해야 하는지?

정말 궁금했던 게,,,이거라....^^;

var oldValue = 0;
$( "[name^='race']" ).on( "focus", function() {
    oldValue = this.value;
    this.value = "";
})
$( "[name^='race']" ).on( "focusout", function() {
    if (this.value == "") this.value = oldValue;
})

답변을 작성하시기 전에 로그인 해주세요.
전체 123,517 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT