//The porpost of this function is prevent user type any thing intext field except 0-9 and .
//For recieve value,event and keycode from text field.
function allowOnlyFloatingPointNumbers(textbox,val,key)
{
var MaxLen = 11;
var val2 = val.replace(/,/g,"");
var letterNumber = /^[0-9.]+$/;
if((val2.match(letterNumber)))
{
textbox.value = val;
}
else
{
textbox.value = val.substr(0,val.length-1);
return;
}
var valtmp = val;
if(valtmp.indexOf(".")<0)
{
if(valtmp.replace(/,/g,"").length>MaxLen)
{
textbox.value = addCommas(val.substr(0,val.length-1));
}
else
{
textbox.value = addCommas(valtmp.replace(/,/g,""));
}
}
else
{
val = val.replace(/[^0-9.]/g, ""); // strip non-digit chars
textbox.value = addCommas(val); // replace textbox value
var indx = val.indexOf(".");
if(indx>-1)
{
var lng = val.substr(indx+1).length;
if(lng>2)
{
textbox.value = addCommas(val.substr(0,val.length-1));
}
}
}
}
function addCommas(nStr)
{
nStr += "";
x = nStr.split(".");
x1 = x[0];
x2 = x.length > 1 ? "." + x[1] : "";
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, "$1" + "," + "$2");
}
return x1 + x2;
}
现在如果我输入 987654321 它将是 987,654,321 在文本框中
但是如果我需要在文本中间进行编辑,例如将 5 更改为 0,则文本将为 987,643,210,在文本末尾插入零,我需要将其设置为 987,604,321,我应该更改函数的哪一部分。
我使用 IE 9。