因项目需要,查阅资料后总结,终于测试成功了,因为手写,可能还会有很大地方不是很理想,谁有好的建议,可以一起讨论讨论。
代码附上:
html:
<input id="input" type="text" /><br /><br /><br />
<label><input name="Fruit" type="radio" value="0.18" checked="checked" />计划120天/预计年化收益18% </label> <br />
<label><input name="Fruit" type="radio" value="0.16" />计划90天/预计年化收益16% </label> <br />
<label><input name="Fruit" type="radio" value="0.12" />计划60天/预计年化收益12% </label> <br />
<label><input name="Fruit" type="radio" value="0.10" />计划30天/预计年化收益10% </label><br /><br />
<span></span>
js:
$(function(){
$("input").keyup(function(){
var txt=parseInt($("input").val());
var rate=$("input[type='radio']:checked").attr("value");
var i=accMul(txt,rate);
$("span").text(i);
})
$("input[type='radio']").click(function(){
var txt=parseInt($("input").val());
var rate=$(this).attr("value");
var i=accMul(txt,rate);
$("span").text(i);
})
})
function accMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
}
修改过的js如下:
$(function(){
$("input").keyup(function(){
var txt_nosp=Trim($("#input").val(),'g'); //去除输入中的空格(左、中、右)
var txt=parseInt(txt_nosp);
var rate=$("input[type='radio']:checked").attr("value");
var i=accMul(txt,rate);
$("#all").text((txt + i).toFixed(2)); //保留两位小数
$("#interest").text(i);
})
$("input[type='radio']").click(function(){
if($input.val()==""){ //判断输入框是否有值,没有输入数字时,下方本息处显示0
$("#all").text("0");
$("#interest").text("0");
}else{
var txt_nosp=Trim($("#input").val(),'g');
var txt=parseInt(txt_nosp);
var rate=$(this).attr("value");
var i=accMul(txt,rate);
$("#all").text((txt + i).toFixed(2));
$("#interest").text(i);
}
})
})
//去除空格
function Trim(str,is_global)
{
var result;
result = str.replace(/(^\s+)|(\s+$)/g,"");
if(is_global.toLowerCase()=="g")
result = result.replace(/\s/g,"");
return result;
}
function accMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
}