簡體   English   中英

此javascript代碼無法正常運行(if-else語句)

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

此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>​

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

您的所有代碼都存在一些問題,由於您說您是新手,因此我將解決所有問題,希望對您有所幫助:)

  1. 之所以總是得到36,是因為在if語句中,term = 36(等於1),因此將term設置為36。

  2. 在if語句中使用principal> = 50000,term = 36是毫無意義的,因為第一個表達式被忽略了,我想您要做的是

    if(本金> = 50000 && term === 36){

  3. 注意,我使用===而不是==以獲得更多信息,請看這里: JavaScript比較中應使用哪個等於運算符(== vs ===)?

  4. 不要使用內聯處理程序(在HTML onclick =“ some function”內)請閱讀http://www.quirksmode.org/js/introevents.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM