修改后的方法 写道
function jsRiskKeyDown(field, maxlimit, format)
{
if ( !jsNull(format) )
{
if ( jsHangul(field) ) event.returnValue = false;
}
if(event.keyCode==110 || event.keyCode==190 || event.keyCode==46)
{
if ( field.value=="" ) field.value="0";
if(!isHasComma(field.value))
{
field.value = field.value.substring(0,field.value.length);
event.returnValue = false;
}
}
if(event.keyCode==9)
{
if(field.value.charCodeAt((field.value.length-1))==46)
{
field.value = field.value.substring(0,field.value.length-1);
}
event.returnValue = true;
}
else
{
switch( format )
{
case "SHR" :
if ( event.keyCode==110 || event.keyCode==194 || (event.keyCode>=48&&event.keyCode<=57) || (event.keyCode>=96&&event.keyCode<=105)
|| event.keyCode==8 || event.keyCode==9 || event.keyCode==15 || event.keyCode==46 || event.keyCode==33
|| ( event.keyCode>=34&&event.keyCode<=39) || (event.keyCode>=39&&event.keyCode<=42) || event.keyCode==64 || event.keyCode==94
|| event.keyCode==109 || event.keyCode==190 )
event.returnValue = true;
else
event.returnValue = false;
break;
}
var str=field.value;
if ( str.length > maxlimit )
{
if ( format == "SHR" )
{
if (field.value.indexOf(".") > 0) {
split1 = field.value.substring(0, field.value.indexOf("."));
split2 = ".";
split3 = field.value.substr(field.value.indexOf(".")+1);
if( event.keyCode == 110 || event.keyCode == 190){
event.returnValue = false;
}
}
else
{
split1 = field.value;
split2 = ".";
split3 = "";
}
while(split1.indexOf("0")==0){
split1 = split1.substr(1);
}
field.value = split1 + split2 + split3.substring(0,1);
if(event.keyCode==8)
{
field.value = str;
}
if(event.keyCode==110 || event.keyCode==190 || event.keyCode==46)
{
if(str.length==2)
{
field.value = split1.substring(0,2);
}
}
}
else
{
field.value = field.value.substring(0, maxlimit);
}
}else{
if ( format == "SHR" )
{
if (field.value.indexOf(".") > 0) {
split1 = field.value.substring(0, field.value.indexOf("."));
split2 = ".";
split3 = field.value.substr(field.value.indexOf(".")+1);
if( event.keyCode == 110 || event.keyCode == 190){
event.returnValue = false;
}
}
else
{
if(field.value=="" && (event.keyCode == "110" || event.keyCode == "190")){
event.returnValue = false;
}
split1 = field.value;
split2 = "";
split3 = "";
if(split1=="0" && event.keyCode == "96"){
event.returnValue = false;
}
else if(split1=="0" && event.keyCode != "96" && event.keyCode != "110" && event.keyCode != "190"){
split1 = split1.substr(1);
}
}
field.value = split1 + split2 + split3.substring(0,1);
//BackSpace BackSpace
if(event.keyCode==8)
{
field.value = str;
}
//KP_Decimal KP_Decimal ,period colon ,Delete
if(event.keyCode==110 || event.keyCode==190 || event.keyCode==46)
{
if(str.length==2)
{
field.value = split1.substring(0,2);
}
}
}
}
}
}
function jsHangul()
{
if ( jsNull(arguments[0].value) ) return true;
for (var i = 0; i < arguments[0].value.length; i++)
{
if (arguments[0].value.charCodeAt(i) > 127)
{
arguments[0].value = arguments[0].value.substring(0,i);
return false;
}
}
return true;
}
function isHasComma(str)
{
for (var i = 0; i < str.length; i++)
{
if (str.charCodeAt(i) ==46 || str.charCodeAt(i) ==190 || str.charCodeAt(i) ==110)
{
return false;
}
}
return true;
}
分享到:
相关推荐
可以强制的保留小数点后几位,达到精确的显示
往往需要限制输入,本资源包含input只能输入数字+两位小数。以及数字+小数点+符号-。也就是两种类型的限制。数字和小数点。以及负数和小数点。并且小数点不能出现在第一位,并且只能出现一次。-只能出现在第一位,...
这个是最直观的网页中常用的js判断输入框输入数字+小数点后两位(可以方便的更改为n位),不同于网上大部分的js判断方式,兼容ie,ff,chrome等多个常用浏览器,上传文件是一静态页面,更适合初学者的使用和更换,...
excell中保留两位小数,此公式简单应用!
本资源可以满足金额有关的一些input框输入,只能输入类似10.001的数据,并且小数点前第一位不能是0,我使用这个是为了管理后台做版本控制,我们只需要1.11这种格式的版本号
讲述c# asp.net 涉及小数问题时如何保留两位的问题
1.2.3 如何实现两金额数据相加(最多小数点两位)
Crack8_编程小组[K.8] QQ吻 欢迎您 Blog http://qqhack8.blog.163.com
从String中提取数字还有小数点
WINFORM文本框实现只能输入数字和小数点
很简单的一小段代码,保存两位有效数字,欢迎指正。。
式化数字保留两位小数点实现的方法有很多,在接下来的文章中将为大家详细介绍下如何使用js来实现
文本框只能输入 数字,小数点,减号 字符的正则表达式
WPF 输入数字和小数点的文本框,支持输入0-9的数字,小数点和删除键,其他的键都被禁止输入
【输入】 第一行是两个实数Xa,Ya,即A的坐标。 第二行是两个实数Xb,Yb,即B的坐标。 输入中所有实数的绝对值均不超过...一个实数,即线段AB的长度,保留到小数点后3位。 【输入样例】 1 1 2 2 【输出样例】 1.414
代码很短,只有十几行,有效计算小数点后100位
主要介绍了JS控制只能输入数字并且最多允许小数点两位,本文给大家提到js如何限制input输入框只能输入数字问题,需要的朋友可以参考下
在开发过程中经常遇到要调整小数的格式,如保留小数点后两位等等。方法也颇为常见,备忘如下。 第一种,利用math.round var original=28.453 1) //round “original” to two decimals var result=Math.round...
arduino 超声波测距代码 精确到小数点后两位
该程序使用js 可校验输入框 为0-10 两位数字,并可保留两位小数