0

クラス用に設計している一見単純な HTML/Javascript ページのバグを見つけるのに非常に苦労しています。私はこのページのコードを何時間もかけて調べました (そして、私を夢中にさせている他の 3 つのページ)。私が滑った構文があるのだろうか?このページでは、顧客が与信限度額を超えたかどうかを解読するスクリプトを作成します。このページと他の 3 つのページでは、onclick イベントが機能していないようです。完全なコードは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>Homework 3 Part 3</title>
<style type="text/css">
tr.visiting {background-color: #000000; }


h1.header {color: #333333;} 
.creditbox { 

    background-color: #ffcc66;
    width: 60%;
    border:solid 5px #666666;
    margin-left:auto;
margin-right:auto;

}

table {
    text-align: right;
}
td.visiting {background-color: #000000; }
input {text-align: right;}
</style>
<script type="text/javascript">
/* <![CDATA[ */

function creditCalc() 
{
    var account, credLim, begBalance, totalCharged, credit, balance, endBalance;

    account = parseInt(document.creditLimitForm.accountNum.value);
    credLim = parseInt(document.creditLimitForm.creditLimit.value);
    begBalance = parseInt(document.creditLimitForm.beginningBalance.value);
    totalCharged = parseInt(document.creditLimitForm.amtCharged.value);
    credit = parseInt(document.creditLimitForm.creditsApplied.value);   

    balance = begBalance + totalCharged;
    endBalance = balance - credit;

    documemt.creditLimitForm.creditDisplay.value("Account Number:  " + account + "\nCredit Limit:  " + credLim + "\nBeginning Balance: " + begBalance + "\nTotal Charged this month:  " + totalCharged + "\nTotal credits this month:  " + credit + "\nCredit Available:  " + endBalance);

document.getElementById("creditAvailable").innerHTML = endBalance;

}

/*]]>*/
</script>

</head>

<body bgcolor = "#ffffff" alink = "#FFFFCC" link = "#FFFFCC" vlink = "#FFFFCC">
<table id="border" width="70%" align ="center" cellpadding="0">
        <tr>
        <td align="center">
            <img src="hw3Banner.jpg" alt="Homework Banner" align="middle" />
        </td>
        </tr>
    </table>
    <br />
    <table border="1" width="500" align ="center" bgcolor="#666666" cellpadding="2.5">
     <tr><td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3.html">HW 3 Main</a></td>
     <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt1.html">Part 1</a></td>
     <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt2.html">Part 2</td>
     <td class="visiting" align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt3.html">Part 3</a></td>
    <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt4.html">Part 4</a></td>
    <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt5.html">Part 5</a></td>
    <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt6.html">Part 6</a></td></tr></table>

<br />
<div class="creditbox" align="center" >
<form name="creditLimitForm" action="">
<br />
<h1 class="header">Customer Credit Limit Check</h1>
<br />


<table class="creditLimitForm">
<tr>
<td>Customer Account Number:</td>
<td><input type="text" id="accountNum" name="accountNum" size="15" /></td>
</tr>
<tr>
<td>1st of Month Balance: </td>
<td>$<input type="text" id="beginningBalance" name="beginningBalance" size="15" /></td></tr>
<tr>
<td>Total charged by customer this month: </td>
<td>$<input type="text" id="amtCharged" name="amtCharged" size="15" /></td>
</tr>
<tr>
<td>Total credits applied to account </td>
<td>$<input type="text" id="creditsApplied" name="creditsApplied" size="15" /></td>
</tr>
<tr>
<td>Allowed Credit Limit</td>
<td>$<input type="text" id= "creditLimit" name="creditLimit" size="15" /></td>
</tr>
</table>

<br />
<textarea rows="7" cols="50" name="creditDisplay"></textarea>
<br /><br />
<input type="button" onclick="creditCalc();" value="Check Credit" />&nbsp;&nbsp;&nbsp;&nbsp;

<input type="reset" value="Reset Form" />

<p>Credit Available: </p>
<p id="creditAvailable"></p>

</form>
<br />
<br />
</div>
</body>
</html>

救助に来ることができる良いデバッガーはいますか?

4

4 に答える 4

0

Chromeでは、javascriptのバグを見つけるのは非常に簡単です。
Chromeでページをロードまたはリロードする前に、右クリックする必要があります。を選択します

inspect element

下部のツールバーよりもConsoleクリックしてください。ファイルにjavascriptエラーが表示されます。

于 2013-02-25T05:29:29.360 に答える
0

わかりました、ここでこのコードを試してください:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>Homework 3 Part 3</title>
<style type="text/css">
tr.visiting {background-color: #000000; }


h1.header {color: #333333;} 
.creditbox { 

    background-color: #ffcc66;
    width: 60%;
    border:solid 5px #666666;
    margin-left:auto;
margin-right:auto;

}

table {
    text-align: right;
}
td.visiting {background-color: #000000; }
input {text-align: right;}
</style>
<script type="text/javascript">
/* <![CDATA[ */

function creditCalc() 
{
var account, credLim, begBalance, totalCharged, credit, balance, endBalance;

    account = parseInt(document.creditLimitForm.accountNum.value);
    credLim = parseInt(document.creditLimitForm.creditLimit.value);
    begBalance = parseInt(document.creditLimitForm.beginningBalance.value);
    totalCharged = parseInt(document.creditLimitForm.amtCharged.value);
    credit = parseInt(document.creditLimitForm.creditsApplied.value);   

    balance = begBalance + totalCharged;
    endBalance = balance - credit;
/*
    documemt.creditLimitForm.creditDisplay.value("Account Number:  " + account + "\nCredit Limit:  " + credLim + "\nBeginning Balance: " + begBalance + "\nTotal Charged this month:  " + totalCharged + "\nTotal credits this month:  " + credit + "\nCredit Available:  " + endBalance);*/

document.getElementById("creditAvailable").innerHTML = "Account Number:  " + account + "\nCredit Limit:  " + credLim + "\nBeginning Balance: " + begBalance + "\nTotal Charged this month:  " + totalCharged + "\nTotal credits this month:  " + credit + "\nCredit Available:  " + endBalance;

}

/*]]>*/
</script>

</head>

<body bgcolor = "#ffffff" alink = "#FFFFCC" link = "#FFFFCC" vlink = "#FFFFCC">
<table id="border" width="70%" align ="center" cellpadding="0">
        <tr>
        <td align="center">
            <img src="hw3Banner.jpg" alt="Homework Banner" align="middle" />
        </td>
        </tr>
    </table>
    <br />
    <table border="1" width="500" align ="center" bgcolor="#666666" cellpadding="2.5">
     <tr><td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3.html">HW 3 Main</a></td>
     <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt1.html">Part 1</a></td>
     <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt2.html">Part 2</td>
     <td class="visiting" align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt3.html">Part 3</a></td>
    <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt4.html">Part 4</a></td>
    <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt5.html">Part 5</a></td>
    <td align = "center"><font face ="baskerville" color="#FFFFCC" /><a href="homework3pt6.html">Part 6</a></td></tr></table>

<br />
<div class="creditbox" align="center" >
<form name="creditLimitForm" action="">
<br />
<h1 class="header">Customer Credit Limit Check</h1>
<br />


<table class="creditLimitForm" id="creditLimitForm">
<tr>
<td>Customer Account Number:</td>
<td><input type="text" id="accountNum" name="accountNum" size="15" /></td>
</tr>
<tr>
<td>1st of Month Balance: </td>
<td>$<input type="text" id="beginningBalance" name="beginningBalance" size="15" /></td></tr>
<tr>
<td>Total charged by customer this month: </td>
<td>$<input type="text" id="amtCharged" name="amtCharged" size="15" /></td>
</tr>
<tr>
<td>Total credits applied to account </td>
<td>$<input type="text" id="creditsApplied" name="creditsApplied" size="15" /></td>
</tr>
<tr>
<td>Allowed Credit Limit</td>
<td>$<input type="text" id= "creditLimit" name="creditLimit" size="15" /></td>
</tr>
</table>

<br />
<textarea rows="7" cols="50" name="creditDisplay"></textarea>
<br /><br />
<input type="button" onclick="creditCalc();" value="Check Credit" />&nbsp;&nbsp;&nbsp;&nbsp;

<input type="reset" value="Reset Form" />

<p>Credit Available: </p>
<p id="creditAvailable"></p>

</form>
<br />
<br />
</div>
</body>
</html>
于 2013-02-25T05:36:06.170 に答える
0
  the problem with your this line otherwise its working fine.just try with alert instead.

     documemt.creditLimitForm.creditDisplay.value("Account Number:  " + account + "\nCredit    Limit:  " + credLim + "\nBeginning Balance: " + begBalance + "\nTotal Charged this month:  " + totalCharged + "\nTotal credits this month:  " + credit + "\nCredit Available:  " + endBalance);

これは問題を引き起こしています。

documemt.creditLimitForm.creditDisplay.value

アラートとチェックを試してください。

于 2013-02-25T05:36:28.170 に答える
0

Firebug for Firefox または Chrome の組み込みデバッグ ツール (または他のブラウザー用の同様のツール) を使用すると、作業が楽になります...

特定の問題に関してonclickは、実際に関数を呼び出す必要があるため、エラーはcreditCalc関数のどこかにある必要があります。それでも問題が解決しない場合は、少なくともブラウザーのエラー コンソールにアクセスして、ここに出力を投稿してください。エラー メッセージが表示されないと、問題の原因を推測するのがはるかに難しくなります。

編集:エラーコンソールにエラーがない可能性もあります。これは、質問に答える人にとって有用な情報であると信じているかどうかにかかわらずです。

于 2013-02-25T05:19:31.287 に答える