0
最大桁数は16を含めて入力しようとしています。小数点以下の桁数は です。金額は最大13で、1つは "。"例えば、2つの小数の 。 5656546355646.00 = 16文字指数値を停止して最大桁数の検証を行う方法
現在のところ、その検証は行われておらず、指数関数的に表示されています。最大 13桁が、唯一小数点以下2桁件まで全体の数字を表示しなければならない、と指数値を表示すべきではありませんここに
私のコード スクリプトがある
function getKeyValue(keyCode) {
if(keyCode > 57) { //also check for numpad keys
keyCode -= 48;
}
if(keyCode >= 48 && keyCode <= 57) {
return String.fromCharCode(keyCode);
}
}
function formatNumber(input) {
if(isNaN(parseFloat(input))) {
return "0.00";
}
var num = parseFloat(input);
return (num/100).toFixed(2);
}
$(".amountInput").keydown(function(e) {
//handle backspace key
var input = $(this).attr("data-actual-input");
if(e.keyCode == 8 && input.length > 0) {
input = input.slice(0,input.length-1); //remove last digit
$(this).attr("data-actual-input", input);
$(this).val(formatNumber(input));
}
else {
var key = getKeyValue(e.keyCode);
if(key) {
input += key; //add actual digit to the input string
$(this).attr("data-actual-input", input);
$(this).val(formatNumber(input)); //format input string and set the input box value to it
}
}
if(e.which == 8 || e.which == 46) {
return true;
}
var inpVal = $(this).val();
if(inpVal.length > 15) {
e.preventDefault();
return false;
}
return false;
});
htmlコード
<input type='tel' class="form-control amountInput" name="amt" data-actual-input="" value="0.00" required>
jsfiddle
https://jsfiddle.net/Lpn1w84f/1/
それは問題がKeyDownイベント()関数であり、jsfiddleにしてみてください.... – Aryan
maxLengthの作品、動作しません。これを見るには、この関数を無効にしてください(例えばtrueを返します)。 $( "。amountInput")。keydown(function(e){ trueを返します; }); –