1

私はJavaScriptの初心者です。トピック、nullプロパティのように、助けていただければ幸いです。

var add = document.getElementById('addition').checked;
var subs = document.getElementById('substraction').checked;
var multi = document.getElementById('multiplication').checked;
var div = document.getElementById('division').checked;

var result = 0;
    var x = parseInt(document.getElementById('firstNumber').value);
    var y = parseInt(document.getElementById('secondNumber').value);

function calculator() 
{
    if (add)
    {
        result = addition(x, y);
    }
    else if (subs)
    {
        result = substraction(x, y);
    }
    else if (multi)
    {
        result = multiplication(x, y);
    }
    else if (division)
    {
        result = division(x, y);
    };
}


<fieldset>
    <legend>Method</legend>
    <p><label><input type="radio" name="method" id="addition" />Addition</label></p>
    <p><label><input type="radio" name="method" id="substraction" />Substraction</label></p>
    <p><label><input type="radio" name="method" id="multiplication" />Multiplication</label></p>
    <p><label><input type="radio" name="method" id="division" />Division</label></p>
</fieldset>

<input type="submit" value="Submit" onclick="calculator();" />

そして、「Uncaught TypeError: null index.html:24 (無名関数) のプロパティ 'checked' を読み取れません」というメッセージが表示されました。

私を助けてください。ごきげんよう!

4

2 に答える 2

0

ここでいくつかの問題が発生しているようです。おそらくどこかにもっとコードがありますか?以上が追加されます。とにかく、関数が実際に呼び出されたときに変数を宣言します。

    function calculator() {
        var add = document.getElementById('addition').checked;
        var subs = document.getElementById('substraction').checked;
        var multi = document.getElementById('multiplication').checked;
        var div = document.getElementById('division').checked;

        var result = 0;
        var x = parseInt(document.getElementById('firstNumber').value);
        var y = parseInt(document.getElementById('secondNumber').value);

        if (add) {
            result = x + y;
        }
        else if (subs) {
            result = x - y;
        }
        else if (multi) {
            result = x * y;
        }
        else if (division) {
            result = x / y;
            alert("division");
        }


    }

除算に別の方法を使用する予定があるかどうかはわかりませんが、除算のラジオ ボタンが選択されている場合に 2 つの数値を除算する場合は、/ を使用します。

チェックされているラジオ ボタンのイベントを使用して、add、subs、multi、div 変数を設定することもできます。

Patrick Evans が述べたように、ラジオ ボタンがレンダリングされる前にラジオ ボタンの値を探すことはできません (これは $(document).ready() で行うか、Patrick Evans が示したように行うことができます。ただし、おそらく必要ありません)。ユーザーがいずれかを選択するか、ボタンがクリックされるまで、それらの値を確認します。

于 2013-08-15T20:40:58.317 に答える