input 숫자입력시 천단위만 입력하게 할 수 있을까요?

input 숫자입력시 천단위만 입력하게 할 수 있을까요?

QA

input 숫자입력시 천단위만 입력하게 할 수 있을까요?

본문

예를들어서요 256789 이렇게 입력을 했다고 하면 입력할때

 

25까지는 입력이 되고 나머지부분은 그냥 0으로 표시되게 하려고 하는데요?

 

가능할까요?

 

비슷한 기능이라도 알고 싶습니다. 

이 질문에 댓글 쓰기 :

답변 4


<input type="text" id="input1">
<input type="text" id="input2">
<script>
$(function() {
  $('#input1').on('change', function() {
     var n = $(this).val(); 
     n = Math.floor(n/1000) * 1000; 
     //alert(n);  
     $(this).val(n);
  });
});
</script>

html5에서는 인풋 타입이 number 일 때 step 속성을 사용할 수 있습니다. 아래와 같이 코드를 짜놓으면, 1000단위가 아닌 숫자를 입력했을 때 브라우저가 submit을 거부합니다.

 

<input type="number" name="points" step="1000">

 

아래는 step이 3으로 설정된 코드샘플입니다.

https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_step

 

다만, 익스9 이하에서는 동작하지 않고, 1000단위 이하 숫자의 입력을 거부하는 것이 아니라, submit을 거부하는 것이기 때문에, 아마 원하시는 동작은 아닐 것 같습니다.

 

border 없는 input 뒤에다가 000을 그냥 텍스트로 넣어 주시고, submit한 뒤에 서버 코드에서 곱하기 1000을 해주거나, submit 전에 스크립트로 곱하기 1000을 해주는 방식을 사용하시는 편이 좀 더 깔끔할 것 같습니다.

 


<label style="border: #bbb solid 1px;"><input type="number" id="falseInput" style="border: none; text-align: right;">,000</label>
<br /><br />
<label><input type="number" id="realInput" step="1000"></label>
<script>
$(function() {
    $("#falseInput").on('keyup change', function() {
        var n = $(this).val();
        n = parseInt(n);
        if(!isNaN(n)){
            $("#realInput").val(n*1000);
        } else {
            $("#realInput").val('');
        }
    });
});
</script>

    var px = vprice.slice(-3);  // 뒷자리 3개
    if(eval(px) > 0){ // 000 은 0임으로 
        var pt=0; pt=priceThousand(); 
        f.price.value=pt;
        formalertwindow("320","180","<b><u>천단위</u></b> 이상 신청 가능 합니다."); return;
    }

 

--------------------------------------------------------------------------------

 

function priceThousand(){
    var fname="Mlang_PointF_formInfo";
    var f=document[fname];    
    var price=f.price.value;
    if(price){ var vprice=price.replace(/,/g,""); }else{ var vprice=0; }
    var ok=Math.floor(vprice/1000) * 1000; 
    return formatnumber(ok,3);
}

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

회원로그인

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