august 发表于 2007-8-12 17:23:23

问个JAVASCRIPT的问题不知可不可以

<html>
<head>
<script language="javascript">
function total()
{
var a=document.myform.yuan.value;

if(a=="不能超过35万" )
   
    document.myform.yuan.select();   
}
function check()
{
   var cash=document.myform.yuan.value;
    if( cash.length==0 || isNaN(cash) )
   {
   alert("不对");document.myform.yuan.select();
   }
   if( cash>350000)
   {
       alert("数值太大");
       document.myform.yuan.select();
      }
}
function counter()
{
   var a=document.myform.yuan.value;
   var b=document.myform.myselect.value;
   var c=document.myform.myselect2.value;
   var afs;
   if(b=="gong")
   {
   switch(c)
   {
       case 5:afs=0.85;break;
       case 10:afs=0.80;break;
       case 15:afs=0.75;break;
   }
   }
   else
   {
   switch(c)
   {
       case 5:afs=0.95;break;
       case 10:afs=0.90;break;
       case 15:afs=0.85;break;
   }
   }
   document.myform.huan.value=a*afs;
}
</script>
</head>
<body>
<form name=myform>


购房计算器


请输入数据
    计算结果:      


贷款总额:
<input name=yuan type=text value=不能超过35万 size=15 onFocus=total()
      onBlur=check()>元
每月还款:<input name=huan type=text size=15>元


贷款方式:
<select name=myselect>
      <option value=gong >公积金</option>
      <option value=shang>商业贷款</option>
    </select>



还款期限:
<select name=myselect2>
   <option value=5>5</option>
   <option value=10>10</option>
   <option value=15>15</option>
    </select>


<input name=count type=button value=计算onClick=counter()>
<input name=reset type=reset value=重置>



</form>
</body>
</html>
为什么输出的结果会等于NaN呢?

coolpay64 发表于 2007-8-12 17:48:52

if(a==&quot;不能超过35万&quot; )
某想不會有人輸入 &quot;不能超过35万&quot;吧

august 发表于 2007-8-12 19:24:58

那只是为了第一次的时候才用到的操作啊,你看看下面我写的
<input name=yuan type=text value=不能超过35万 size=15 onFocus=total()
      onBlur=check()>元
我是初始它的 value=不能超过35万   

coolpay64 发表于 2007-8-12 21:09:23

switch(c)
   {
       case 5:afs=0.85;break;
       case 10:afs=0.80;break;
       case 15:afs=0.75;break;
   }
}
else
{
    switch(c)
   {
       case 5:afs=0.95;break;
       case 10:afs=0.90;break;
       case 15:afs=0.85;break;
   }
}
這兒邏輯上是正確的
很可惜地 myselect的資料是字串,而不是數字
所以要改成
       case 5:afs=0.95;break;
--&gt;
       case &quot;5&quot;:afs=0.95;break;
全部也是這樣改,換回字串該沒有問題
页: [1]
查看完整版本: 问个JAVASCRIPT的问题不知可不可以