本人对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里实现???
+---------------------------------------------------------+
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里实现???
<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>
this.form1.Time.value = nDesiredLevel+ " - " + nCurrentLevel;
应改为this.form1.Time.value = nDesiredLevel - nCurrentLevel;另外,我忘了考虑一种情况,即当CurrentLevel处于60以下,而DesiredLevel又大于60以上时,就得分情况来算,即,在60之前是一个数,60之后是又一个数,最后相合。
---------------------------------谢谢你这么快就给我解决了问题,其余的小问题我自行处理就OK!!