我对这些个不懂,也不知道算法对不对,至少表面上看是对了……
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>付款方币种</title>
</head><body>
付款方币种:<br/>
<input type="radio" value="ZH" name="fukuan" checked="checked"/>人民币
<input type="radio" value="USA" name="fukuan" />美元<br/>
金额:<input type="text" id="fj" />
<br/><br/>
付款方币种:<br/>
<input type="radio" value="ZH" name="shoukuan"  checked="checked"/>人民币
<input type="radio" value="USA" name="shoukuan" />美元<br/>
金额:<input type="text" id="sj" readonly="readonly"/><script type="text/javascript">
//1该国的钱,可以兑换多少人民币
var huilv = {
ZH:1,
USA:6.8
}
var fukuan = document.getElementById("fj");//付款金额
var shoukuan = document.getElementById("sj");//收款金额
var fukuan_radios = document.getElementsByName("fukuan");//付款的单选
var shoukuan_radios = document.getElementsByName("shoukuan");//收款的单选
function setmoney()
{
var reg = new RegExp("[-.\\d]","g");//只是简单对输入内容进行检测一下
if(!reg.test(fukuan.value))
return;

var fk,sk;
for(var i=0;i<fukuan_radios.length;i++)
{
if(fukuan_radios[i].checked)
{
fk = fukuan_radios[i].value;
break;
}
}

for(var i=0;i<shoukuan_radios.length;i++)
{
if(shoukuan_radios[i].checked)
{
sk = shoukuan_radios[i].value;
break;
}
} var hl = huilv[fk]/huilv[sk];
var str = parseInt(fukuan.value,10)*hl;
shoukuan.value = str.toFixed(5);//取5位小数
}fukuan.onblur = function()
{
setmoney();
}for(var i=0;i<fukuan_radios.length;i++)
{
fukuan_radios[i].onclick = setmoney;
}

for(var i=0;i<shoukuan_radios.length;i++)
{
shoukuan_radios[i].onclick = setmoney;
}</script>
</body></html>

解决方案 »

  1.   

    var reg = new RegExp("^[-.\\d]+$","g");
      

  2.   

    朋友 非常感谢你的回帖  我的那个币种是通过ajax调用一种放大镜的原理做到的,这是公司本来就有的。
    我现在不知道怎样才能在币种的这个文本框中触发这个事件 我想选择币种后,触发这个事件,onchange没有用
      

  3.   

    onchange事件是失去焦点后,并且文本的内容改变才会触发事件
    直接用onblur算了……
      

  4.   

    onblur也试了  不行 因为选择放大镜后  text是没有被触发的  值是自动被赋上的  
    这可怎么弄啊