Mengikut keperluan pengguna, formatkan jumlah apabila memasukkannya, iaitu, pisahkan setiap tiga digit dengan koma dan kekalkan dua tempat perpuluhan.
Memandangkan pengalaman pengguna, JS digunakan untuk memformatkan amaun Kod bahagian hadapan adalah seperti berikut:
Kod JS adalah seperti berikut:
//======Semak sama ada input ialah nombor
semak fungsi() {
jika (!((window.event.keyCode >= 48 && window.event.keyCode <= 57) || window.event.keyCode == 46 || window.event.keyCode == 45)) {
window.event.keyCode = 0
}
}
//======Formatkan jumlah kotak teks
function run(obj) {
var objvalue = obj.value.replace(/[,]/g, ""),
objlength = objvalue.length,
dtmp = objvalue.indexOf("."),
neg = objvalue.indexOf("-");
var inttmp = 0,
floattmp = -1;
Jika (dtmp != -1) {
inttmp = dtmp == 0 ? "0" : new String(objvalue).substring(0, dtmp);
floattmp = String(objvalue) baharu.substring(dtmp 1, objlength 1);
floattmp = floattmp.replace(/[^0-9]/g, "");
}
lain {
inttmp = objvalue;
}
Jika (neg == 0) {
inttmp = inttmp.replace(/[-]/g, "");
}
inttmp = inttmp.replace(/[^0-9]/g, "");
var tmp = "", str = "0000";
untuk (; inttmp.length > 3; ) {
var temp = String baharu(inttmp / 1000);
Jika (temp.indexOf(".") == -1) {
tmp = ",000" tmp;
inttmp = temp;
}
lain {
var le = new String(temp).split(."")[1].length;
tmp = "," new String(temp).split(".")[1] str.substring(0, 3 - le) tmp;
inttmp = Rentetan(temp).split(."")[0];
}
}
inttmp = inttmp tmp;
Obj.value = neg == 0 ? "-" inttmp running(floattmp) : inttmp running(floattmp);
}
//======Susun bahagian perpuluhan
fungsi berjalan(val) {
Jika (val != "-1" && val != "") {
var valvalue = 0 "." val;
Jika (val.length >= 2) {
valvalue = parseFloat(valvalue).toFixed(2);
}
var temp = "." valvalue.split(".")[1];
suhu balik;
}
else if (val != "0" && val == "") {
kembalikan ".";
}
lain {
kembalikan "";
}
}
Pada masa yang sama, kerana amaun boleh dimasukkan sebagai nombor negatif, pertimbangan "neg = objvalue.indexOf("-")" ditambah.
Berkenaan masalah pemformatan amaun, saya sering menghadapi perkara seperti ini, saya rasa ini tidak mengapa, jadi saya akan menyimpannya untuk rujukan masa hadapan.