0

現在、jQuery で最初の電卓を作成していますが、入力値の合計に問題があります。シンプルで使いやすいものにしたいので、複数の入力を使用していません。以下のコードが出力NaNされますが、その理由がわかりません。

$('body').on('click', '#method-getsum', function() {
    var sum = 0;
    var string = $('input[name="fieldtext-calculate"]').val();

    if(string.length != 0) {
        sum += Number(string);
    }

    alert(sum);
});

私は何かを逃しましたか?ここですべての動作を確認できます: http://jsfiddle.net/edgren/QTjWR/ (このデモには、eval関数を使用した正しいソリューションが含まれています (私の電卓は実際のプロジェクト用ではありません。単に「プレイアラウンド」プロジェクトを使用するだけです))

前もって感謝します。

4

2 に答える 2

1

のようなものを入力すると1+2、コードは を呼び出しますNumber("1+2")Number()引数として単一の数値 (足し算ではない) を想定しているため、これは正しくありません。操作の解析と解釈は実行されません。コードは自分で作成する必要があります。

それが単なるおもちゃのプロジェクトである場合は、eval代わりに使用します (実際のプロジェクトではNumber避けてください。セキュリティ上の問題が発生します)。eval

于 2013-01-23T19:05:57.020 に答える
0

変数名にキーワードを使用している可能性があります。コードを次のように変更してみてください。

var fieldText = $('input[name="fieldtext-calculate"]').val();

if(fieldText.length != 0) {
    sum += Number(fieldText );
}

EDIT 気にしないでください。返される値は$('input[name="fieldtext-calculate"]').val();文字列 '7 + 8 + 9' です。+符号を分割して配列に数値を取得し、配列をループして、個別の値を取得してみてください。

于 2013-01-23T19:04:57.693 に答える