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 equals) があるため、term を 36 に設定するためです。

  2. 最初の式が無視されるため、ifステートメントでprincipal> = 50000、term = 36を使用するのは無意味です。あなたがやりたいと思うことは

    if(プリンシパル>=50000 && 期間 === 36) {

  3. ===を使用し、== を使用していないことに注意してください。詳細については、こちらを参照してください:

  4. インライン ハンドラー (html onclick="some function" 内) を使用しないでください http://www.quirksmode.org/js/introevents.html をお読みください

于 2012-08-09T07:37:43.490 に答える
0

でコンマ演算子を使用しましたif。これはterm36 に設定されます。

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 に答える