1

ここに問題があります。私は最近、イベント処理に関係する基本的なJとonClick関数の2つのコードに取り組んでいます。今日まで、すべてが正常に機能しており、ボタンをクリックしても機能にリンクしていません。次のようにコーディングします。

<html>
<title>Calculate Your Monthly Payments</title> 

        <script language="JavaScript"> 
            function Calc(){ 
            var a, res;             
            a = parseFloat(document.monthly.borrow.value); 
            res1 = a/300;
            res2 = a/500;
            res3 = a/900;


            if (document.monthly.borrow.value == ""){
                window.alert("Enter the amount that you will be borrowing.");
                return;
            }

            else if (document.monthly.payments.selectedIndex == 0){
                window.alert("Please select a mortgage type.");
                return;
            }

            else if(document.monthly.payments.value == "1" )
            {
                window.alert("Your short term monthly repayments have been estimaded to be £" + res1);
            }
            else if(document.monthly.payments.value == "2" )
            {
                window.alert("Your medium term monthly repayments have been estimaded to be £ " + res2);
            }
            else if(document.monthly.payments.value == "3" )
            {
                window.alert("Your long term monthly repayments have been estimaded to be £ " + res3);
            } 
        }
        </script> 

</head> 


<div id="container">

        <h2>Calculate Your Monthly Payments</h2> 
        <h4>Please fill in the form below</h4>
         <form id="monthly"> 
           How much are you borrowing? (£):<font color="#900">*</font> <br /><input name = "borrow" type = "text" size = "10" id="textarea" /> <br /><br />

                Mortgage Type: <br />
                <select name = "payments">
                  <option value="" selected="selected">Please Select </option>
                  <option value="1">CompleteQuaters Mortgage 2.19% fixed until 2015 </option>
                  <option value="2">CompleteQuaters Mortgage 3.17% fixed until 2017 </option>
                  <option value="3">CompleteQuaters Mortgage 3.18% fixed until 2024 </option>
                </select>
                <br /><br />                
           <input type = "button" value = "Calculate Payments! " onclick = "Calc();" /> 
           <br />
                <p><font color="#900">*Indicates Required Fields</font></p>

        </form>
</html>

当然、私はそれをChrome(20.0.1096.1)で実行しましたが、確かにエラーが発生しました。正確には1つのエラーです。

Uncaught TypeError:未定義のプロパティ'borrow'を読み取れません

このエラーはずっとそこにあったに違いないので、ここからどこに行くべきかわかりませんが、それでも機能していました。

問題は続きます。
すべてのメインブラウザ(Firefox、Chrome、IE)と3台の異なるコンピュータ(Windows 7、Vista、XP)、およびAndroidとMobileSafari用のChromeBetaでこのコードをテストしましたが、どれもテストしていません。そのうちの1つがonClickイベントに応答します。

また、onClickを実行すると、ウィンドウが通常開いて表示されることも指摘しておく必要があります。

「X期間の月々の支払いは£XXXXXです」。

「X」は、選択されたものの可変結果です。

私はすでにこのすべてを何度か経験しましたが、私はJsが得意ではないので、私が得ることができるどんな助けも確かにありがたいです。


問題についてさらに情報が必要な場合は、私に知らせてください。

4

3 に答える 3

2

あなたはdocument.monthly.borrow.valueそう使っています

<form id="monthly">

する必要があります

<form name="monthly">

または、次のように両方を使用できます

<form name="monthly" id="monthly">

IDで要素を選択する場合は、document.getElementById('elementId')を使用できます。

デモ

于 2012-04-24T22:10:39.873 に答える
0

いくつかの構文エラーがあります:

  1. res1, res2, res3定義されていません。これはグローバルスコープを使用するため危険であり、おそらくそれは望ましくありません。

  2. あなたはそのような声明を出すことはできませreturn;if。それは確かにエラーの原因になるでしょう。そのために、switchステートメントとを使用しbreakます。

  3. ものを数値または文字列としての数値と比較する場合は、型の強制を避ける===のではなく、使用する方がよいでしょう。==それも問題の原因です。

于 2012-04-24T22:11:33.863 に答える
0

属性名の使用を停止します。代わりにIDを使用してください。要素を取得するには、document.getElementById( "id")Exを使用します(HTMLに応じて、次のように切り替えます。

a = parseFloat(document.monthly.borrow.value); 

a = parseFloat(document.getElementById("textarea").value);

次に、残りのコードを変更する必要があります。

于 2012-04-24T22:12:32.427 に答える