할 일이 까다 롭습니다. 문제의 노력 (코드 노력을 공유하지 않음)이 부족하다는 점은 내가 이것을 해체 시켰습니다. 그러나 복잡성으로 인해 그것을 공유하게되었습니다. 다른 많은 사람들에게도 도움이 될 수 있습니다.
Working Demo
document.getElementById("demo").onkeydown = function (e) {
//console.log(e.keyCode);
if (e.keyCode != 37 && e.keyCode != 39 && e.keyCode != 8 && e.keyCode != 46)
e.preventDefault();
if (e.keyCode == 8 || e.keyCode == 46) {
//If already key down (backspaceOrDel=1) then no affect
if (backspaceOrDel == 1)
e.preventDefault();
else
backspaceOrDel = 1;
return;
}
if (e.keyCode < 48 || (e.keyCode > 57 && e.keyCode <96) || e.keyCode > 105)
return;
try {
var val = this.value;
var val1 = 0;
if (val == 0) {
val1 = e.key/100;
}
else {
//very tricky. We needed val1=val*10+e.key but it does not
//work correctly with floats in javascript.
//Here you have to different than android in logic
var val1 = parseFloat(val) * 1000;
val1 += parseFloat(e.key);
val1 = val1/100;
}
val1 = val1.toFixed(2);
if (!isNaN(val1))
this.value = val1;
}
catch (ex) {
alert("Invalid Amount");
}
};
는 먼저 뭔가를 시도해야합니다. –
각형 솔루션을 시도했지만 구현 방법이 확실하지 않습니다. iOS 프로젝트 텍스트 필드에서 비슷한 기능을 수행했지만 로직이 같은지 확실하지 않습니다 –
그냥 대답 : http://stackoverflow.com/questions/38972448/force-input-number-decimal- 장소 기반/38982343 – Mojtaba