数值验证小bug
设置 datatype="num"输入 10 .9 没有提示出错
没有验证输入是否包含空格 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()"> 换两个数再试 结果又相反了
<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()"> 回到 function accAdd()
//var s= (arg1*m+arg2*m)/m
var s=Math.round(arg1*m+arg2*m)/m
ok 正常了 回到 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]