Согласно потребностям пользователей, сумма должна быть отформатирована при входе, то есть каждые три цифры разделены запятыми, и сохраняются два десятичных значения.
Учитывая опыт пользователя, отформатируйте сумму с JS, код переднего плана выглядит следующим образом:
Кода -копия выглядит следующим образом:
<ASP: TextBox id = "txtAmount" runat = "server" onkeypress = "check ()" onkeyup = "run (this)"> </asp: textbox>
Код JS выглядит следующим образом:
Кода -копия выглядит следующим образом:
// ====== Проверьте, является ли ввод номер
функция проверка () {
if (! ((window.event.keycode> = 48 && window.event.keycode <= 57) || window.event.keycode == 46 || window.event.keycode == 45)) {
window.event.keycode = 0
}
}
// ======== Объем форматированного текстового поля
функция запустить (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;
}
еще {
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 + "." + val;
if (val.length> = 2) {
valvalue = parsefloat (valvalue) .tofixed (2);
}
var temp = "." + valvalue.split (".") [1];
вернуть температуру;
}
else if (val! = "0" && val == "") {
возвращаться ".";
}
еще {
возвращаться "";
}
}
В то же время, поскольку сумма может быть введена в отрицательное число, добавляется суждение «neg = objvalue.indexof (»).
Что касается форматирования суммы, я часто сталкиваюсь с такими вещами. Если я думаю, что это нормально, я буду держать его для легкого доступа в будущем!