Selon les besoins de l'utilisateur, formatez le montant lors de sa saisie, c'est-à-dire séparez tous les trois chiffres par des virgules et conservez deux décimales.
Compte tenu de l'expérience utilisateur, JS est utilisé pour formater le montant. Le code front-end est le suivant :
Le code JS est le suivant :
//======Vérifiez si l'entrée est un nombre
fonction check() {
if (!((window.event.keyCode >= 48 && window.event.keyCode <= 57) || window.event.keyCode == 46 || window.event.keyCode == 45)) {
window.event.keyCode = 0
>
>
//======Formater le montant de la zone de texte
fonction exécuter(obj) {
var objvalue = obj.value.replace(/[,]/g, ""),
objlength = objvalue.length,
dtmp = objvalue.indexOf("."),
neg = objvalue.indexOf("-");
var inttmp = 0,
floattmp = -1;
Si (dtmp != -1) {
inttmp = dtmp == 0 ? "0" : new String(objvalue).substring(0, dtmp);
floattmp = new String(objvalue).substring(dtmp 1, objlength 1);
floattmp = floattmp.replace(/[^0-9]/g, "");
>
sinon {
inttmp = objvalue;
>
Si (nég == 0) {
inttmp = inttmp.replace(/[-]/g, "");
>
inttmp = inttmp.replace(/[^0-9]/g, "");
var tmp = "", str = "0000";
pour (; inttmp.length > 3; ) {
var temp = new String(inttmp / 1000);
Si (temp.indexOf(".") == -1) {
tmp = ",000" tmp;
inttmp = temp;
>
autre {
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 en cours d'exécution (floattmp) : inttmp en cours d'exécution (floattmp);
>
//======Organiser la partie décimale
fonction en cours d'exécution (val) {
Si (val != "-1" && val != "") {
var valvalue = 0 "val;
Si (val.length >= 2) {
valvalue = parseFloat(valvalue).toFixed(2);
>
var temp = "." valvalue.split(".")[1];
température de retour ;
>
sinon if (val != "0" && val == "") {
return ".";
>
sinon {
return "";
>
>
En même temps, comme le montant peut être saisi sous forme de nombre négatif, le jugement "neg = objvalue.indexOf("-")" est ajouté.
Concernant le problème de formatage des montants, je rencontre souvent ce genre de chose, je pense que ça va, donc je le garderai pour référence future !