此 JavaScript 代码无法正常工作(if-else 语句)

this javascript code is not working properly(if-else statement)

本文关键字:工作 if-else 语句 常工作 代码 JavaScript      更新时间:2023-09-26

这个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>​

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

  1. 你总是得到 36 的原因是在你的 if 语句中你有 term = 36(一个等于),所以你把 term 设置为 36。

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

    if(principal>=50000 && term === 36) {

  3. 请注意,我使用了 === 而不是 == 有关更多信息,请查看此处:在 JavaScript 比较中应该使用哪个等于运算符 (== vs ===)?

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

您在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)