我檢查你的修復。但它似乎有一個問題。如果你按1到9的所有鍵,數字變成12345678.9。但根據你的要求,應該是1234567.89 [如果我理解正確]。 請嘗試下面的解決方案,看看它是否符合您的要求。請注意,在代碼塊的末尾,我添加了兩個函數「GetNumberAfterAppendingDecimal」和「GetCleanString」,然後我使用了$(.key).click();
$('.key').click(function(){
var inputNumber=GetCleanString($("#numBox").html());
$("#numBox").html(GetNumberAfterAppendingDecimal(inputNumber));
}); (鑰匙)
function GetNumberAfterAppendingDecimal(str) {
if (str.length < 3)
return str;
var positionFromEnd = 2;
var reversedStr = str.split('').reverse().join('');
if (str.length == 3)
positionFromEnd -= 1;
reversedStr = [reversedStr.slice(0, positionFromEnd), ".", reversedStr.slice(positionFromEnd)].join('');
return reversedStr.split('').reverse().join('');
}
function GetCleanString(str) {
str = str.replace(/[\r]+/, '');
str = str.replace(/[\n]+/, '');
str = str.replace(/[\t]+/, '');
str = str.replace('.', '');
str = $.trim(str);
return str;
}
雖然這些方法工作從UX(用戶體驗)角度來看,他們有一個主要的缺點。可以說,我的意思是進入'13',但我輸入'12',但意外。所以我第一個數字就是'1',第二個是'3'。此時出現小數點。點擊'delete'現在擦除我沒有輸入的小數點,然後點擊'2'和'enter'完成。我現在在箱子裏的價值是'132'而不是'12'。 –