обновление итогов строки в форме заказа с jquery - PullRequest
0 голосов
/ 19 августа 2010

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

Форма генерируется с помощью cms, поэтому в конечном итоге она оборачивается множеством посторонних элементов и т. Д., ... это упрощенная версия каждой позиции:

       <input type="text" class="text cart_qty" id="Form_OrderForm_Product-1065-qty" name="Product[1065][qty]" value="1" />

        <input type="text" class="text prod_id" id="Form_OrderForm_prod_1065" name="prod_1065" value="1065" />

        <input class="hidden" type="hidden" id="Form_OrderForm_hidden_1065" name="hidden_1065" value="1.45" />

        <span id='Product_1065_Line' class='cart_price_line'>1.45</span>

, поэтому, в основном, всякий раз, когдаполе ввода .cart_qty изменено, необходимо обновить .cart_price_line.

У меня итоги работают следующим образом:

$('.cart_qty').keyup(function(){
var $thetotal=0;

$('input.cart_qty').each(function(index) {

 $theqty=$(this).val();
 $thenextindex=$("input").index(this) + 2;
 $theprice=$("input:eq("+$thenextindex+")").val();

 $thelinetotal=$theqty * $theprice;
 $thetotal=$thetotal + $thelinetotal;

});
$("#total_price_curr").html($thetotal).formatCurrency();
$("#Form_OrderForm_totalHidden").val($thetotal);


});

Все позиции рассчитываются, но я не могу понятьКак настроить таргетинг на span.cart_price_line внутри функции $ ("input.cart_qty"). each (...).

Любая помощь приветствуется

Ответы [ 2 ]

0 голосов
/ 20 августа 2010

Я не уверен, что получил то, о чем вы просили, но, возможно, это поможет.Добавьте это в конец функции .each()

var product_id = $(this).attr("id").split("-")[1];
$("#Product_" + product_id + "_Line").html($thelinetotal);

Демо с добавленной строкой: http://jsfiddle.net/7NCdQ/

Также я переписал ее (новый селектор jQuery для получения цены и переименованных переменных)

$('input.cart_qty').keyup(function(){
    var total = 0;

    $('input.cart_qty').each(function(index) {
        var product_id = $(this).attr("id").split("-")[1];

        var quantity = $(this).val();
        var price = $("#Form_OrderForm_hidden_" + product_id).val();

        var line_total =  price * quantity;
        total += line_total;

        $("#Product_" + product_id + "_Line").html(line_total);
    });

    $("#total_price_curr").html(total);
    $("#Form_OrderForm_totalHidden").val(total);
});

Демо: http://jsfiddle.net/7NCdQ/1/

0 голосов
/ 19 августа 2010

Разве это не будет this.children("span.cart_price_line")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...