ユーザーのニーズに応じて、入力するときは金額をフォーマットする必要があります。つまり、3桁ごとにコンマで分離され、2つの小数点以下が保持されます。
ユーザーのエクスペリエンスを考慮して、JSの金額をフォーマットすると、前景コードは次のとおりです。
コードコピーは次のとおりです。
<asp:textbox id = "txtamount" runat = "server" onkeypress = "check()" onkeyup = "run(this)"> </asp:textbox>
JSコードは次のとおりです。
コードコピーは次のとおりです。
// ======入力が数字かどうかを確認します
function check(){
if((!((window.event.keycode> = 48」」&& window.event.keycode <= 57)|| window.event.keycode == 46 || window.event.keycode == 45){{
window.event.keycode = 0
}
}
// ========フォーマットされたテキストボックスの量
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":new String(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 valvue = 0 + "。" + val;
if(val.Length> = 2){
valvalue = parsefloat(valvalue).tofixed(2);
}
var temp = "。" + valvalue.split( "。")[1];
return temp;
}
else if(val!= "0" && val == ""){
戻る "。";
}
それ以外 {
戻る "";
}
}
同時に、金額を負の数に入力できるため、「neg = objvalue.indexof( " - ")」の判断が追加されます。
金額のフォーマットに関して、私はしばしばそのようなことに遭遇します。これが大丈夫だと思うなら、私は将来簡単にアクセスできるようにそれを維持します!