bigshuai 发表于 2013-10-24 11:01:29

数值验证小bug

设置 datatype="num"
输入 10   .9 没有提示出错


bigshuai 发表于 2013-10-24 11:28:38

没有验证输入是否包含空格

bigshuai 发表于 2013-10-24 20:58:11

js加法
网上流传一种方法:

function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".").length}catch(e){r1=0}
try{r2=arg2.toString().split(".").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(".").length}catch(e){r1=0}
try{r2=arg2.toString().split(".").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()">

bigshuai 发表于 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(".").length}catch(e){r1=0}
try{r2=arg2.toString().split(".").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()">

bigshuai 发表于 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 正常了

bigshuai 发表于 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,'')"   
页: [1]
查看完整版本: 数值验证小bug