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

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

 

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

 

가능할까요?

 

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

답변 4개

채택된 답변
+20 포인트

Copy
<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>
로그인 후 평가할 수 있습니다

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

    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);
}

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

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

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

 

Copy
<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을 해주는 방식을 사용하시는 편이 좀 더 깔끔할 것 같습니다.

 

Copy
<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>
로그인 후 평가할 수 있습니다

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

jquery나 javascript로 적어진숫자의 길이체크

맨앞두자리숫자 확인

나머지 자리 0으로 채워지게함.

 

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

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

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

로그인
🐛 버그신고