不知道大家是怎么实现的?
1,用js控制的话,在firefox下面可以输入多位小数,
2,如果用正则表达式控制的话。
οnkeypress="if(/[-]?\.\d\d$/.test(value))event.returnValue=false"
这样写,在firefox下也是错误的。
太郁闷了。
大家给点建议吧,最好能用能用正则表达式在IE,FF下兼容
有人说用match匹配,不用test匹配,会在FF下显示正确,可是试过了,也不能用,
期待大家的解法
网上好多都是错的,真的是错误满天飞呀,
还有一个,是这样写的,也不敢保证是对的 ^(([0-9]+\.[0-9]{2})|([0-9]*[1-9][0-9]*))$
2. ^(([1-9]\d*)|0)(\.\d{2})?$
转一下别人写的
function isTriDecimal(value){
if(value!=null&&value!=''){
var decimalIndex=value.indexOf('.');
if(decimalIndex=='-1'){
return false;
}else{
var decimalPart=value.substring(decimalIndex+1,value.length);
if(decimalPart.length>2){
return true;
}else{
return false;
}
}
}
return false;
} <<SPAN class=hilite1>input</SPAN> name="sumAdjust" type="text" id="sumAdjust" size="20" value='<c:out value="${form1.sumAdjust}" />' οnkeyup="if(isNaN(value)||isTriDecimal(value))execCommand('undo')" onafterpaste="if(isNaN(value)||isTriDecimal(value))execCommand('undo')" />
function isTriDecimal(value){
if(value!=null&&value!=''){
var decimalIndex=value.indexOf('.');
if(decimalIndex=='-1'){
return false;
}else{
var decimalPart=value.substring(decimalIndex+1,value.length);
if(decimalPart.length>2){
return true;
}else{
return false;
}
}
}
return false;
}
<<SPAN class=hilite1>input</SPAN> name="sumAdjust" type="text" id="sumAdjust" size="20" value='<c:out value="${form1.sumAdjust}" />'
οnkeyup="if(isNaN(value)||isTriDecimal(value))execCommand('undo')"
onafterpaste="if(isNaN(value)||isTriDecimal(value))execCommand('undo')"
/>