2011-01-26 4 views
0

Я размышляю над тем, как вы могли бы добавить все значения входов с конкретными именами через jQuery, если их контейнер Div установлен для отображения блока.jQuery умножить только значения, которые не являются скрытыми

Что-то ссылка if ($('#product_' + this.alt).css('display','block')) {

Затем нужно сложить .each с выборки входного что-то вроде этого.

$('#product_price_total_PRI_' + this.alt).val 

Любые идеи о том, как бы все это соединило?

Edit:

Очевидно, что я должен уточнить. В теге alt из нескольких флажков и переключателей помечен тег, который соответствует идентификаторам скрытых контейнеров и полей. Поэтому комбинация кнопок и флажков, которые проверяются, определяет, какие скрытые области видны, как показано здесь.

function product_analysis_global() { 
$(':checked').each(function(){ 
    $('#product_' + this.alt).css('display','block'); 
    $('#product_quantity_PRI_' + this.alt).val(this.value); 
    var quantity = $('#product_quantity_PRI_' + this.alt).val(); 
    var price = $('#product_price_PRI_' + this.alt).val(); 
    var duration = $('#product_duration_PRI_' + this.alt).val(); 
    var dives = $('#product_dives_PRI_' + this.alt).val(); 
    var hire = $('#product_quantity_PRI_' + this.alt).val(); 

    $('#product_price_total_PRI_' + this.alt).val(price * quantity); 
    $('#product_duration_total_PRI_' + this.alt).val(duration * quantity); 
    $('#product_dives_total_PRI_' + this.alt).val(dives * quantity); 
    $('#product_hire_total_PRI_' + this.alt).val(hire * quantity); 

}); 

Что мне нужно, это поле называется «GT_grand_total» быть сумма всех полей, площадь '#product_price_total_PRI_' + this.alt).val()' только если их панель '#product_' + this.alt видна.

+0

Я понятия не имею, что вы пытаетесь сделать здесь. Почему вы используете 'this.alt'? Что это за поля? Не могли бы вы показать свой HTML? – lonesomeday

+0

Добавить или умножить? Что это в этом. Подумайте, что вам повезло, что я не голосую плохо сформулированные вопросы :) –

+0

Этот.тот является всего лишь способом определения идентификатора требуемых полей, поскольку все они динамически генерируются. Внутри тега alt есть уникальный идентификатор, который также генерируется с помощью PHP, который дополнительно дополняет теги alt необходимых полей. –

ответ

1

В соответствии с ваше требование

var arr = $("div[id*='product_']").not(":hidden").map(function(){ 
    return $(this).find("input[id*='product_price_total_PRI_']").val(); 
}).get(); 



var total = 0; 
$.each(arr,function() { 
    total += parseInt(this); 
}); 
alert(total); 

Или для общего

var total = eval(arr.join('+')); 

alert(total); 

Рабочий пример

http://jsfiddle.net/wB5Hh/2/

+0

Замечательная благодарность, Финальный Fidle http://jsfiddle.net/wB5Hh/7/ –

1
var sum = 0; 
$("#specific_name_1, #specific_name_2").not(":hidden").each(function(){ 
    var i = parseInt($(this).val(), 10); 
    if(i){ 
     sum += i; 
    } 
}); 
$("#grand_total").val(sum); 

Определение: скрытый селектор http://api.jquery.com/hidden-selector/