2

jQuery スクリプトについて少し助けが必要です。だからここにあります:

HTML:

    1<input type="text" name="plastvaike_v" id="plastvaike_v" /><br />
2<input type="text" name="plastsuur_v" id="plastsuur_v" /><br />
3<input type="text" name="klaas_v" id="klaas_v" /><br />
4<input type="text" name="plekk_v" id="plekk_v" /><br /><br />
<span id="plastvaike_t">0.00</span> + <span id="plastsuur_t">0.00</span> + <span id="klaas_t">0.00</span> + <span id="plekk_t">0.00</span> = <span id="total">0.00</span>

JS:

$('#plastvaike_v').keyup(function(ev){
    var plastvaike_t = $('#plastvaike_v').val() * 0.04;
    $('#plastvaike_t').html((plastvaike_t).toFixed(2));
});
$('#plastsuur_v').keyup(function(ev){
    var plastsuur_t = $('#plastsuur_v').val() * 0.08;
    $('#plastsuur_t').html((plastsuur_t).toFixed(2));
})
$('#klaas_v').keyup(function(ev){
    var klaas_t = $('#klaas_v').val() * 0.08;
    $('#klaas_t').html((klaas_t).toFixed(2));
})
$('#plekk_v').keyup(function(ev){
    var plekk_t = $('#plekk_v').val() * 0.08;
    $('#plekk_t').html((plekk_t).toFixed(2));
});

そして、ここで見つけることができる JsFiddle の動作デモ

今私が必要としているのは、「=」の後に合計値を表示する必要があるということです。これは jQuery で行う必要があります。

そして、テキストボックスに数字を書いた後に数字を表示させる方法を誰かが教えてくれたらいいのにと思います。現在は 0.00 です。それらを削除しても、「+」は残ります。私が言おうとしたことを理解していただければ幸いです.. 私の主な言語は英語ではありません。

4

4 に答える 4

1

ここから始めましょう ( http://jsfiddle.net/yyhNY/7/ ):

function updateView() {
    var plastvaike_t = $('#plastvaike_v').val() * 0.04,
        plastsuur_t = $('#plastsuur_v').val() * 0.08,
        klaas_t = $('#klaas_v').val() * 0.08,
        plekk_t = $('#plekk_v').val() * 0.08;

    // Take all the numbers as an array, and get rid of the ones that are 0.
    var operands = [plastvaike_t, plastsuur_t, klaas_t, plekk_t];
    for (var i = 0; i < operands.length; i++) {
        if (operands[i] == 0)
            operands.splice(i--, 1);
    }

    // join puts them all together with a + separating them
    $('#operands').text(operands.join(' + '));

    // This sum method is something you'll either have to add to the array
    // prototype or write yourself—it's not part of javascript.
    var total = operands.sum();
    $('#total').text(total.toFixed(2));

    if (total == 0) $('#total').hide();
    else $('#total').show();
}

$('#plastvaike_v, #plastsuur_v, #klaas_v, #plekk_v').keyup(updateView);
于 2013-03-30T23:06:28.553 に答える
0

それ以外の

$('#plastvaike_v').val() * 0.04;

試す

parseInt($('#plastvaike_v').val(), 10) * 0.04;

今の問題は、Jquery が文字列を整数で乗算しようとすることであり、それが 0.0 を取得する理由だと思います。

于 2013-03-30T23:06:07.567 に答える
0

これは、次のように、ID を必要とせずに非常に簡潔に行うことができます。

HTML :

<div id="foo">
    1<input type="text" name="plastvaike_v" data-factor="0.04" /><br />
    2<input type="text" name="plastsuur_v" data-factor="0.08" /><br />
    3<input type="text" name="klaas_v" data-factor="0.08" /><br />
    4<input type="text" name="plekk_v" data-factor="0.08" /><br /><br />
<span>0.00</span> + <span>0.00</span> + <span>0.00</span> + <span>0.00</span> = <span>0.00</span>
</div>

#foo入力とスパンを選択する手段にすぎません。グループとして選択できる限り、クラスなどの他の方法でそれらを選択することもできます。

JavaScript :

var $spans = $("#foo span");
var $inputs = $("#foo input").on('keyup', function() {
    var total = 0;
    $inputs.each(function(i, input) {
        var val = (Number(input.value) * Number($(input).data('factor'))) || 0;
        $spans.eq(i).text(val.toFixed(2));
        total += val;
    });
    $spans.filter(":last")text(total.toFixed(2));
});

デモ

もちろん、他の目的で必要な場合は、ID を保持できます。

于 2013-03-31T00:12:36.177 に答える
0

入力された空の値に対する「+」演算子の削除を簡単に処理するには、等式の左側の部分を 4 つではなく一意のスパンと見なし、そのテキストを空ではなく数値のみで埋める配列として動的に設定することができます。そして、一意の引数 " + " を使用してメソッド "join" を呼び出します。

さらに、クロージャー変数を使用して入力とスパンを参照することにより、少し最適化することを忘れないでください。

最後に、入力がフォーム内にある場合、フォームの DOM 要素はその名前付き入力をライブ プロパティとして直接参照することに注意してください: myInput という名前の入力を持つ myForm という名前のフォームを想定すると、入力は document.getElementById(" を介してアクセス可能になります。 myForm").myInput は、jQuery を使用して取得するよりもはるかに高速です。

于 2013-03-30T23:30:41.493 に答える