ユーザーのニーズに応じて、金額を入力するときに金額を書式設定します。つまり、3 桁ごとにカンマで区切って、小数点以下 2 桁を保持します。
ユーザーエクスペリエンスを考慮して、JS を使用して金額をフォーマットします。フロントエンドコードは次のとおりです。
JS コードは次のとおりです:
//======入力が数値かどうかを確認します
関数 check() {
if (!((window.event.keyCode >= 48 && window.event.keyCode <= 57) || window.event.keyCode == 46 || window.event.keyCode == 45)) {
window.event.keyCode = 0
}
}
//======テキストボックスの量を書式設定します
関数 run(obj) {
var objvalue = obj.value.replace(/[,]/g, ""),
objlength = objvalue.length,
dtmp = objvalue.indexOf("."),
neg = objvalue.indexOf("-");
var inttmp = 0,
floattmp = -1;
If (dtmp != -1) {
inttmp = dtmp == 0 ? "0" : 新しい文字列(objvalue).substring(0, dtmp);
floattmp = new String(objvalue).substring(dtmp 1, objlength 1);
floattmp = floattmp.replace(/[^0-9]/g, "");
}
他 {
inttmp = objvalue;
}
If (neg == 0) {
inttmp = inttmp.replace(/[-]/g, "");
}
inttmp = inttmp.replace(/[^0-9]/g, "");
var tmp = ""、str = "0000";
for (; inttmp.length > 3; ) {
var temp = new String(inttmp / 1000);
If (temp.indexOf(".") == -1) {
tmp = ",000" tmp;
inttmp = temp;
}
else {
var le = new String(temp).split(".")[1].length;
tmp = "," new String(temp).split(".")[1] str.substring(0, 3 - le) tmp;
inttmp = new String(temp).split(".")[0];
}
}
inttmp = inttmp tmp;
Obj.value = neg == 0 ? "-" inttmp running(floattmp) : inttmp running(floattmp);
}
//======小数部を整理
関数実行中(val) {
If (val != "-1" && val != "") {
var valvalue = 0 "."
If (val.length >= 2) {
valvalue = parseFloat(valvalue).toFixed(2);
}
var temp = "." valvalue.split(".")[1];
戻り温度;
}
else if (val != "0" && val == "") {
return ".";
}
他 {
return "";
}
}
同時に、金額は負の数値でも入力できるため、「neg = objvalue.indexOf("-")」の判定が追加されます。
金額の書式設定の問題については、このようなことはよくあるので、これは大丈夫だと思いますので、今後の参考にさせていただきます。