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>
jquery나 javascript로 적어진숫자의 길이체크
맨앞두자리숫자 확인
나머지 자리 0으로 채워지게함.
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);
}