-1

if... else ステートメントを使用して、配列要素の値を介して変数 stateCode に値を代入しようとしています。配列が正しくない可能性があります。コードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
   <title>if...else</title>
<script type="text/javascript">

function choices() {
   var stateCode = document.getElementById("x").value;
   var taxes = new Array(10; 7.5; 3.2);
     if ("x" === "OR") {
     document.writeln(taxes[0]);
   } else if ("x" === "CA") {
     document.writeln(taxes[1]);
   } else if ("x" === "MO") {
     document.writeln(taxes[2]);
   }

}
</script>
</head>
<body>
<p>
   <select id="x" onchange="choices(this.value);">
     <option value = "">---Reset---</option>
     <option value = "MO">MO</option>
     <option value = "OR">OR</option>
     <option value = "CA">CA</option>
   </select>

</p>       
</body>
</html>
4

2 に答える 2

1
    if ("x" === "OR") {
     document.writeln(taxes[0]);
   } else if ("x" === "CA") {
     document.writeln(taxes[1]);
   } else if ("x" === "MO") {

に置き換え"x"stateCode、もう一度お試しください

次のように置き換えvar taxes = new Array(10; 7.5; 3.2);ます。

var taxes = new Array(10, 7.5, 3.2);

それはうまくいくはずです、それは私にとってはうまくいきました。

これはどうですか: 関数全体をこれに置き換えます:

function choices() {
    var stateCode = document.getElementById("x");
    var taxes = new Array(10, 7.5, 3.2);
    if (stateCode.value != "") {
        document.getElementById("taxes").innerHTML = taxes[stateCode.selectedIndex - 1];
    }
}

<div id="taxes"></div>ページのどこかにa を追加します。

于 2012-04-24T02:23:11.223 に答える
1

ええと、憎しみがどこから来ているのかわかりません。ただし、問題がいくつかあります。

  1. document.writeln は JavaScript では決して適切ではありません。ドキュメントを上書きします。選択ボックスが消えることを意味します。
  2. 文字列の比較はばかげているので、タイプミスが必要です。ただし、===を使用するとうまくいきます
  3. インライン メソッド ハンドラはonchange="choices(this.value);"、これまでで最悪のものではありません。しかし、それらは避けるべきです。JavaScript を使用すると、ブラウザ間のさまざまな癖をより簡単に処理できます。
  4. 最新のブラウザには、このコードをデバッグする方法があります。Firefox の Firebug、Internet Explorer の F12 (PC)、および Webkit ブラウザーのデバッグ コンソール。これらは行番号を示し、致命的な精度で問題を特定することを可能にします。
  5. 現在、インラインハンドラーで選択の値を送信しているので、それを使用してください。
  6. new Array構文が面倒です。私はそれを避けてブラケットを使用します[10, 3.2, 3]


あなたの質問について:

HTML を追加

<div id="results"></div>

...

function choices(stateCode) {
    var results = document.getElementById("results");
    var taxes = [10, 7.5, 3.2];

     switch(stateCode) {
        case "OR": 
            results.innerHTML = taxes[0];
            break;
        case "CA":
            results.innerHTML = taxes[1];
            break;
        case "MO":
            results.innerHTML = taxes[2];
            break;
        default:
            results.innerHTML = "No tax records for entry: " + stateCode;
            break;
     }
}

于 2012-04-24T02:28:18.660 に答える