本人对JS应用,尤其计算方法极为薄弱,还望诸位路过大侠顶力出手帮帮忙,谢谢!题目如下:
+---------------------------------------------------------+
2个下拉菜单,分别为 CurrentLevel和DesiredLevel (其选择值均为1-80级间,其中DesiredLevel至少比CurrentLevel大1级)3个text输入框,分别为 Price 和 Time  及 Free ,此三值随2个下拉菜单选择的值而变化计算规则:---------Price---------当CurrentLevel<60时,则Price = (DesiredLevel - CurrentLevel) * 1.00
当60=<CurrentLevel<80时,则Price = (DesiredLevel - CurrentLevel) * 1.50--------------------------------------------------------------------------------------------- 
---------Free---------当CurrentLevel<60时,则Free=1500
当60=<CurrentLevel<80时,则Free=2000---------------------------------------------------------------------------------------------
---------Time---------当CurrentLevel<60时,则Time= "4-5"
当60=<CurrentLevel<80时,则Time = "DesiredLevel - CurrentLevel"---------------------------------------------------------------------------------------------
请问以上要求如何在JS里实现???

解决方案 »

  1.   

    CurrentLevel 是从 1-80可以自由选择 还是根据什么地方限定的?
      

  2.   

    CurrentLevel  和 DesiredLevel  都是两个自由选择的下拉菜单,范围在1-80之间,条件是DesiredLevel > CurrentLevel
      

  3.   

    <html>
    <head>
    <title>C</title></head><body >
    <form name="form1" method="post" action="">
    CurrentLevel
      <select name="CurrentLevel" id="CurrentLevel" onchange="setDesiredLevel();setTextBoxes();">
      </select>
      <br>
      DesiredLevel
      <select name="DesiredLevel" id="DesiredLevel" onchange="setTextBoxes();">
      </select>
      <br>Price<input name="Price" type="text" id="Price">
      <br>Time<input name="Time" type="text" id="Time">
      <br>Free<input name="Free" type="text" id="Free">
    </form>
    <script language="JavaScript" type="text/JavaScript">
    var i,j,k;
    var oOption;
    for(i=1;i<=80;i++)
    {
    oOption = document.createElement("OPTION");
    this.form1.CurrentLevel.options.add(oOption);
    oOption.innerText = i;
    oOption.value = i;
    }

    for(i=2;i<=80;i++)
    {
    oOption = document.createElement("OPTION");
    this.form1.DesiredLevel.options.add(oOption);
    oOption.innerText = i;
    oOption.value = i;
    }
    setTextBoxes();function setDesiredLevel()
    {
    while(this.form1.DesiredLevel.options.length>0)
    this.form1.DesiredLevel.options.remove(0); var i;
    for(i=parseInt(this.form1.CurrentLevel.value)+1;i<=80;i++)
    {
    var oOption;
    oOption = document.createElement("OPTION");
    this.form1.DesiredLevel.options.add(oOption);
    oOption.innerText = i;
    oOption.value = i;
    }
    }function setTextBoxes()
    {
    var nCurrentLevel = parseInt(this.form1.CurrentLevel.value);
    var nDesiredLevel = parseInt(this.form1.DesiredLevel.value);
    if (nCurrentLevel<60 )
    {
    this.form1.Price.value = (nDesiredLevel - nCurrentLevel) * 1.00;
    this.form1.Free.value = 1500;
    this.form1.Time.value = "4-5";
    }else{
    this.form1.Price.value = (nDesiredLevel - nCurrentLevel) * 1.50;
    this.form1.Free.value = 2000;
    this.form1.Time.value = nDesiredLevel+ " - " + nCurrentLevel;
    }

    }</script></body>
    </html>
      

  4.   

    非常感谢楼上的ACMAIN_CHM高手!!---------------------------------我试过了,可以产生变化,不过还有些小问题得改改,如下面的
    this.form1.Time.value = nDesiredLevel+ " - " + nCurrentLevel;
    应改为this.form1.Time.value = nDesiredLevel - nCurrentLevel;另外,我忘了考虑一种情况,即当CurrentLevel处于60以下,而DesiredLevel又大于60以上时,就得分情况来算,即,在60之前是一个数,60之后是又一个数,最后相合。
    ---------------------------------谢谢你这么快就给我解决了问题,其余的小问题我自行处理就OK!!