关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 13038|回复: 5

数值验证小bug

[复制链接]
发表于 2013-10-24 11:01:29 | 显示全部楼层 |阅读模式
设置 datatype="num"
输入 10   .9 没有提示出错


 楼主| 发表于 2013-10-24 11:28:38 | 显示全部楼层
没有验证输入是否包含空格
 楼主| 发表于 2013-10-24 20:58:11 | 显示全部楼层
js加法
网上流传一种方法:

function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}

试了一下 发现不好使
反倒是用*1 能正常输出了


<script type="text/javascript">
function accAdd(){

var arg1=document.getElementById("df1").value;
var arg2=document.getElementById("df2").value;
alert(arg1);
alert(arg2);
alert(arg1*1+arg2*1);
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
var s= (arg1*m+arg2*m)/m
alert(s);
}
</script>

<input name="df" id="df1" value="78.96" onblur="accAdd()"   >
<input name="df" id="df2" value="9.2" onblur="accAdd()"   >
<input name="dfs" id="dfs" value=""  onclick="accAdd()"  >
 楼主| 发表于 2013-10-24 21:12:18 | 显示全部楼层
换两个数再试 结果又相反了

<script type="text/javascript">
function accAdd(){

var arg1=document.getElementById("df1").value;
var arg2=document.getElementById("df2").value;
alert(arg1);
alert(arg2);
alert(arg1*1+arg2*1);
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
var s= (arg1*m+arg2*m)/m
alert(s);

var v1=parseFloat(arg1);
var v2=parseFloat(arg2);
alert(v1+v2);
}
</script>

<input name="df" id="df1" value="88.16" onblur="accAdd()"   >
<input name="df" id="df2" value="4.1" onblur="accAdd()"   >
<input name="dfs" id="dfs" value=""  onclick="accAdd()"  >
 楼主| 发表于 2013-10-24 21:27:17 | 显示全部楼层
回到 function accAdd()
//var s= (arg1*m+arg2*m)/m
var s=  Math.round(arg1*m+arg2*m)/m

ok 正常了
 楼主| 发表于 2013-10-24 21:29:06 | 显示全部楼层
回到 function accAdd()
//var s= (arg1*m+arg2*m)/m
var s=  Math.round(arg1*m+arg2*m)/m

ok 正常了

输入 10   .9  空格的问题 添加一个判断 解决
onkeyup="this.value=this.value.replace(/^ +| +$/g,'')"   
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表