1

彼ら。jQueryを使用して基本的な操作を行うWebベースの電卓を作成しようとしています。私はすでに追加操作を実装しています。今、引き算にはまっています。

マイナスボタンをクリックしたときのコードスニペットは次のとおりです。

$("#btnSub").click(function () {
    holdValue = $("#result").val();
    currentValue = $("#result").val("0");

    flagSub = "1";
    flagNotEmpty = "0";
    flagDecimal = "0";
});

等号ボタンをクリックしたときのコード スニペットを次に示します。

$("#btnEquals").click(function () {
    if (flagNotEmpty == "0") {
        alert("Missing Value.");
    } else {
        if (flagAdd == "1") {
            currentValue = $("#result").val();
            var output = parseFloat(holdValue) + parseFloat(currentValue);
            $("#result").val(parseFloat(output));
        } else if (flagSub == "1") {
            currentValue = $("#result").val();
            var output2 = parseFloat(holdValue) - parseFloat(currentValue);
            $("#result").val(parseFloat(output2));
        }
    }

    flagSub = "0";
    flagAdd = "0";
    flagNotEmpty = "0";
    flagDecimal = "0";
});

変数関数:

  1. flagSub: 選択された演算が減算であることを決定するために使用されます

  2. flagNotEmpty: 演算子を選択した後に数字が押されたかどうかを判断するために使用されます。演算子ボタンの直後に等号をクリックすると、エラー メッセージが表示されます。

  3. flagDecimal: 10 進数が既に入力されていることをプログラムに伝えるために使用されます。小数点重複のエラーメッセージを表示します。

このプログラムの問題点は、最初に実行する操作のときに減算を実行できないことです。つまり、ブラウザーが UI を読み込んで減算を行っても、何も起こりません。しかし、たとえばクリック1 + 2 =すると、プログラムがテキストボックスに表示されます3。ページを更新せずに、 をクリックします- 10 =。差分が表示されます。

最初からやり直すには、ページを更新してください。すべての操作が完了したら、CLEAR ボタンを追加します。

私のアルゴリズムの何が問題なのか知りたいだけです。htmlと を使用した完全なコードについてcssは、そのfiddleを次に示します。

ところで、私はjQueryを学び始めたばかりなので、面倒で効率の悪いコーディング方法かもしれませんが、ご容赦ください。ヘルプは本当に大歓迎です。前もって感謝します。

4

1 に答える 1

0

flagAdd初期化する必要があるため、btnSubハンドラーを変更してそれを行うことができます

$("#btnSub").click(function () {
    holdValue = $("#result").val();
    currentValue = $("#result").val("0");

    flagAdd = "0";
    flagSub = "1";
    flagNotEmpty = "0";
    flagDecimal = "0";
});

または、ドキュメント準備ハンドラーFiddleで初期化することもできます

于 2013-01-19T09:47:34.733 に答える