혹시, 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;
})