各位好,
我有个表单如下:
<form action="" method="get">
<table width="500" border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td width="102">原值:</td>
    <td width="390"><input type="text" name="yuan" /></td>
  </tr>
  <tr>
    <td>此次提折旧:</td>
    <td><input type="text" name="zhe" /></td>
  </tr>
  <tr>
    <td>累计提折旧:</td>
    <td><input type="text" name="fullzhe" /></td>
  </tr>
  <tr>
    <td>净值:</td>
    <td><input type="text" name="total" /></td>
  </tr>
</table>
</form>
----------------
现在我想要做的是:
累计提折旧=此次提折旧+累计提折旧;
净值=原值-累计提折旧;
----------------
js:
function addSN(){
var v2 = (document.all.zhe.value)*1;
var v3 = (document.all.fullzhe.value)*1;
//e.onclick=null;
document.all.fullzhe.value = v2+v3;
}function addSS(){
var v1 = (document.all.yuan.value)*1;
var v4 = (document.all.fullzhe.value)*1;
document.all.total.value = v1-v4;
}
----------------
这样写不行,在对应的动作上写会循环,我是onclick上写return addSN()后每点一次累计提折旧都会增加...
这个要如何写?
一直在线...

解决方案 »

  1.   

    不管你这个写法兼容性问题,单纯说解决方法。var _flag = false;//定义全局标志字段。function addSN(){
    if(!_flag)
    {
    var v2 = (document.all.zhe.value)*1;
    var v3 = (document.all.fullzhe.value)*1;
    document.all.fullzhe.value = v2+v3;
    }
    _flag = true;
    }function addSS(){
    var v1 = (document.all.yuan.value)*1;
    var v4 = (document.all.fullzhe.value)*1;
    document.all.total.value = v1-v4;
    }
      

  2.   

    document.all.fullzhe.value =0;
    document.all.fullzhe.value = v2+v3;
      

  3.   

    这样呢?当然,值错误需要自己判断。
    var _temp = 0;//用于记录折旧值function addSN(){var v2 = (document.all.zhe.value)*1;
    //判断值是否合法,不合法提示信息并返回。
    var v3 = (document.all.fullzhe.value)*1;
    document.all.fullzhe.value = v2+v3-_temp; //减去上次输入
    _temp = v2;//记录本次输入}function addSS(){
    var v1 = (document.all.yuan.value)*1;
    var v4 = (document.all.fullzhe.value)*1;
    document.all.total.value = v1-v4;
    }