修改后的方法 写道
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;
}
{
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;
}