キーダウンとキープレスを使用しています。このコードはクロムでのみ機能し、Firefox では機能しません。最初の機能は、ユーザーが使用できるのは数字、テンキー、バックスペース、およびタブのみです。別の機能は、ユーザーが数値を入力すると、自動的に 10 進数の
デフォルトに変更されます --> 0.00
1 を入力 --> 0.01
0 を入力 --> 0.10
0 を入力 --> 1.00
ここで私のデモを見つけることができます
$('#txtInput').keydown(function(event) {
var Key = event.which;
//number
if (Key >= 48 && Key <= 57) {
return true;
}
//numpad
else if (Key >= 96 && Key <= 105) {
return true;
}
//backspace,tab
else if (Key >= 8 && Key <= 9) {
return true;
}
else return false;
});
$(document).ready(function(){
$('#txtInput').keypress(function(e){
var value = $('#txtInput').val().toString();
var number = null;
if(value == '')
value = '0.00';
switch(e.which)
{
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
number = e.which - 48;
break;
default:
e.preventDefault();
break;
}
var dotIndex = value.indexOf('.');
if(number === null)
{
value = value.substr(0,dotIndex-1) + '.' + value.substr(dotIndex -1,1) + value.substr(dotIndex+1,1);
if(value.indexOf('.') ==0)
{
value = '0' + value;
}
}
else
{
value = value.substr(0,dotIndex) + value.substr(dotIndex+1,1) + '.' + value.substr(dotIndex+2);
value += number.toString();
value = value.replace(/^0+/,'');
if(value.indexOf('.') == 0)
{
value = '0' + value;
}
}
$('#txtInput').val(value);
e.preventDefault();
}).keypress(function(e){
switch(e.which)
{
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
e.preventDefault();
break;
}
});
});