文本框 价格 保留两位小数 讨论

不知道大家是怎么实现的?

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')"  
/>  


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值