JQuery - Автоматические расчеты - PullRequest
0 голосов
/ 10 ноября 2011

У меня здесь период умственного таяния.В течение 2 дней я смотрел на числа и пытался заставить этот чертов расчет работать, но теперь я не могу заставить работать метод результата.

У меня есть 1 текстовое поле, 2 флажка,1 выпадающий список и h1, где будет показан результат.

Мне нужна помощь в расчете и отображении результата.Вот код JQuery, который у меня есть.

    var iAlt = 0;

    // DROPDOWN
    var halloAbo = "";
    $('#hallo-abo').change(function (){
        halloAbo = $('#hallo-abo').val();   
            //$('#sk').text(halloAbo);
    });


    // TEXTBOX
    var maxregning = 0;
    $('#maxRegning').focusout(function(){
        maxregning = 0;
        maxregning = $('#maxRegning').val();

        $('#sk').text(maxregning);
    });



    // SELECT 1
    var pakkerTotal = 0;
    $('#pakker :checkbox').click(function() {
        pakkerTotal = 0;
        $('#pakker :checkbox:checked').each(function(idx, elm) {
            pakkerTotal += parseInt(elm.value, 10);
        });
        //visResultat();
    });

    // SELECT 2
    var betalTotal = 0;
    $('#betal :checkbox').click(function() {
        betalTotal = 0;
        $('#betal :checkbox:checked').each(function(idx, elm) {
            betalTotal += parseInt(elm.value, 10);
        });
        //visResultat();

    });

    // NEED HELP HERE
    var buffer1 = 0;
    var buffer2 = 0;
    function visResultat(){
        iAlt = eval(maxregning -= pakkerTotal -= betalTotal);
        $('#sk').text(iAlt)
    }


    //$('#sk').text(iAlt);

Вот кое-что из HTML

// DROPDOWN    
<select id="hallo-abo" style="float:left;">
<option value="">Vælg dit abo</option>
<option value="49">test 1</option>
<option value="99">test 2</option>
ect
</select>

// TEXTBOX
<input type="textbox" id="maxRegning" value="" />


// CHECKBOX 1
<div id="pakker">
<input type="checkbox" value="39" />test 1<br/>
<input type="checkbox" value="79" />test 2<br/>
</div>

//CHECKBOX 2
<div id="betal">
<input type="checkbox" value="6,5" />test 1<br/>
<input type="checkbox" value="36" />test 2
</div>

// RESULT
<h1 id="sk">0</h1>

Надеюсь, кто-нибудь может помочь мне здесь

1 Ответ

1 голос
/ 10 ноября 2011

Это выглядит очень неправильно;

iAlt = eval(maxregning -= pakkerTotal -= betalTotal);

Я подозреваю, что вы просто хотели:

iAlt = maxregning - pakkerTotal - betalTotal;

Первая точка: оператор - = фактически изменяет значение слева, а не простовозвращая результат расчета.Итак, ваша линия фактически меняла maxregning и pakkerTotal.

Второе: вы выполняли некоторую арифметику, а затем «оценивали» результат.Это бессмысленно;если математика получится до 12, то будет 12.toString (), что равно «12».eval («12») равен 12.

В-третьих: Eval - почти всегда неправильный ответ;) Если вы считаете, что вам нужно eval () что-либо, остановитесь и подумайте об этом, а затем не делайте этого,

...