Según las necesidades del usuario, la cantidad debe formatearse al ingresar, es decir, cada tres dígitos están separados por comas y se conservan dos decimales.
Teniendo en cuenta la experiencia del usuario, formatear la cantidad con JS, el código de primer plano es el siguiente:
La copia del código es la siguiente:
<ASP: TextBox id = "Txtamount" runat = "Server" onKeyPress = "check ()" onKeyUp = "run (this)"> </asp: textbox>
El código JS es el siguiente:
La copia del código es la siguiente:
// ====== Verifique si la entrada es un número
función check () {
if (! ((window.event.keycode> = 48 && window.event.keycode <= 57) || window.event.keycode == 46 || window.event.keycode == 45)) {
Window.event.KeyCode = 0
}
}
// ======== la cantidad del cuadro de texto formateado
function 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": nueva cadena (objValue) .substring (0, dtmp);
floattmp = nueva cadena (objValue) .substring (dtmp + 1, objLength + 1);
floattmp = floattmp.replace (/[^0-9]/g, "");
}
demás {
inttmp = objValue;
}
if (neg == 0) {
inttmp = inttmp.replace (/[-]/g, "");
}
inttmp = inttmp.replace (/[^0-9]/g, "");
var tmp = "", str = "0000";
para (; inttmp.length> 3;) {
var temp = new String (inttmp / 1000);
if (temp.indexof (".") == -1) {
tmp = ", 000" + tmp;
inttmp = temp;
}
demás {
var le = new String (temp) .split (".") [1] .length;
tmp = "," + nueva cadena (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);
}
// ======= Organice la parte decimal
función en ejecución (val) {
if (val! = "-1" && val! = "") {
var valvalue = 0 + "." + val;
if (val.length> = 2) {
valvalue = parsefloat (valvalue) .tofixed (2);
}
var temp = "." + valvalue.split (".") [1];
regresar temp;
}
else if (val! = "0" && val == "") {
devolver ".";
}
demás {
devolver "";
}
}
Al mismo tiempo, dado que la cantidad se puede ingresar en un número negativo, se agrega el juicio de "Neg = ObjValue.Indexof ("-")".
Con respecto al formato de la cantidad, a menudo encuentro tales cosas. Si creo que esto está bien, ¡lo mantendré para facilitar el acceso en el futuro!