테스트 사이트 - 개발 중인 베타 버전입니다

혹시, 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개

채택된 답변
+20 포인트

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

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

정말 궁금했던 게,,,이거라....^^;
var oldValue = 0;
$( "[name^='race']" ).on( "focus", function() {
oldValue = this.value;
this.value = "";
})
$( "[name^='race']" ).on( "focusout", function() {
if (this.value == "") this.value = oldValue;
})
val() 로 가져오는 게 아니라 value 속성으로 담는 거였군요.
덕분에 오늘도 알찬 공부가 되었습니다. 정말 감사합니다. ^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고