0

这个 javascript 代码不能正常工作(if-else 语句)。它有输出,但是当我输入 term=35 时,总是显示 term=36 的计算。有人可以帮我解决这个问题吗?谢谢!我只是编程的新手。

<script language="javascript" type="text/javascript">
function calc1(form) {

    var principal = form.principal.value;
    var term = form.term.value;
    var paidup = form.paidup.value;
    var unearn = form.unearn.value;
    form.paidup.value = form.principal.value * 0.01;


    if (principal >= 50000, term = 36) {
        form.unearn.value = principal * .27750;
    }

    else if (principal >= 50000, term = 35) {
        form.unearn.value = principal * .27000;
    }

}
</script>
<FORM>
<table>
<tr>
<td>Enter Principal Amount:</td>
<td><INPUT TYPE ="text" NAME="principal" SIZE=15 ></td>
</tr>
<tr>
<td>Enter Number of Term:</td>
<td><INPUT TYPE ="text" NAME="term" SIZE=15 ></td>
</tr>
<tr> <td><INPUT TYPE ="button" VALUE="Calculate" ONCLICK="calc1(this.form)"></td><td></td> </tr>

</tr> <tr> <td>Paid-Up Share Capital:</td> <td><INPUT TYPE="text" NAME="paidup" SIZE=4 ></td> </tr> <tr> <td>Unearned Income:</td> <td><INPUT TYPE="text" NAME="unearn" SIZE=4 ></td> </tr>

</table>
</form>​
4

2 回答 2

0

您的所有代码几乎没有问题,我将解决所有问题,因为您说您是新手,所以我希望这会有所帮助:)

  1. 你总是得到 36 的原因是因为在你的 if 语句中你有 term = 36(one equal) 所以你将 term 设置为 36。

  2. 在 if 语句中使用 principal>=50000, term=36 是毫无意义的,因为第一个表达式被忽略了,我认为你想要做的是

    如果(本金>=50000 && 期限 === 36){

  3. 请注意,我使用 === 而不是 == 以获取更多信息,请看这里:JavaScript 比较中应该使用哪个等号运算符(== vs ===)?

  4. 不要使用内联处理程序(在 html onclick="some function" 内部)请阅读http://www.quirksmode.org/js/introevents.html

于 2012-08-09T07:37:43.490 回答
0

您已经在if. 这设置term为 36。

if (principal>=50000, term=36)

我不确定您要达到什么目标,但也许这样效果更好:

var term = parseInt(form.term.value, 10),
    principal = parseInt(form.principal.value, 10);

if (principal >= 50000 && term == 36) {...} // (if principal is greater than or equal to 5000 and term equals to 36)
于 2012-08-09T07:28:07.130 回答