在文本框输入“2”(语句中乘以3),自动得出结果“6”的简单计算已结贴:http://topic.csdn.net/u/20100416/17/937b1e04-27f9-4bce-bb8b-3eb68848f469.html?871803104
稍微复杂一点也可以。如,“(?-3)*2.65”:
<body>
<input type="text" name="textfield" onkeyup="document.getElementById('a').innerHTML=(this.value-3)*2.65" />×3=<span id="a"></span>
</body>但是,更复杂的计算语句怎么写呢?
现在我想在两个文本框分别输入数据后,计算这两个文本框输入数值的差,然后再用这个差乘以一个固定系数,再除以一个固定日期和今天的日期的差(天数),怎样自动得出结果?
如:
<body>
(<input type="text" name="textfield1">-<input type="text" name="textfield2">)*2/(2111年9月17日-当前日期)= (在这里自动显示结果)
</body>

解决方案 »

  1.   

    你把输入的字符串转成日期。去看看javaScript Date的用法,你就会明白了。
      

  2.   

      取得你文本框的value
      把日期的天数用getDate();转出来计算及行了
      

  3.   

    谢谢楼上二位!能给出具体代码吗?
    我大概没写清楚,文本框输入的都是数据。比如,两个文本框里分别输入211和101,怎样让这两个值相减?还有就是当前日期和固定日期相减的天数怎么计算。
    我基础不好,可以给出具体代码吗?就像这样:
    <body>
    (<input type="text" name="textfield1">-<input type="text" name="textfield2">)*2/(2111年9月17日-当前日期)= (在这里自动显示结果)
    </body>谢谢了!
      

  4.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
    <script type="text/javascript">
    function $(id){
    return document.getElementById(id);
    }
    function cal(){
    var val1 = parseInt($("txt1").value, 10), val2 = parseInt($("txt2").value, 10);
    if(isNaN(val1) || isNaN(val2)){
    return;
    }
    var time = new Date("2111/9/17") - new Date(new Date().toLocaleDateString().replace(/年|月/g, "/").replace("日", ""));
    var ret = ( val1 - val2 ) * 2 / (time / (24 * 60 * 60 * 1000));
    $("txt3").value = ret;
    }
    </script>
     </HEAD> <BODY>
      <input type="text" id="txt1" onkeyup="cal()" /> - 
      <input type="text" id="txt2" onkeyup="cal()" /> = 
      <input type="text" id="txt3" readonly="readonly" />
     </BODY>
    </HTML>
      

  5.   

    谢谢!
    无论输入什么数,计算结果均为“NaN”?
    而且结果不必在文本框里。
      

  6.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
    <script type="text/javascript">
    function $(id){
    return document.getElementById(id);
    }
    function cal(){
    var val1 = parseInt($("txt1").value, 10), val2 = parseInt($("txt2").value, 10);
    if(isNaN(val1) || isNaN(val2)){
    return;
    }
    var d = new Date(), time = new Date("2111/9/17") - new Date(d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate());
    var ret = ( val1 - val2 ) * 2 / (time / (24 * 60 * 60 * 1000));
    $("txt3").value = ret;
    }
    </script>
     </HEAD> <BODY>
      <input type="text" id="txt1" onkeyup="cal()" /> - 
      <input type="text" id="txt2" onkeyup="cal()" /> = 
      <input type="text" id="txt3" readonly="readonly" />
     </BODY>
    </HTML>
    可能你的系统不一样,在日期转换那出问题了,现改了下~
      

  7.   

    把代码里的2个 parseInt 换成 parseFloat 就可以了
      

  8.   

    我没什么基础。但看了你这个例子已经大体明白怎么做了。在单位用的是IE6,回家试试IE8,应该没问题:)
      

  9.   

    在IE8测试通过!
    感谢Free_Wind22!
    加分结贴!