Показать сообщение отдельно
  #1 (permalink)  
Старый 06.05.2014, 01:49
Новичок на форуме
Отправить личное сообщение для runapa Посмотреть профиль Найти все сообщения от runapa
 
Регистрация: 03.04.2014
Сообщений: 2

Суммировать значения полей
Здравствуйте!

У меня есть форма, поля в которой создаются динамически.

var total = 0;
    function add_new_field(){
        total++;
        $('<tr>')
        .attr('id','tr_image_'+total)
        .css({lineHeight:'20px'})
        
        .append (
            $('<td valign="top" align="center">')
            .attr('id','quantity'+total+'')
            .attr('class','sum')
            .append(
                $('<input type="text" />')
                .css({width:'60px'})
                .attr('id','quantity[]')
                .attr('name','quantity[]')
            )		
        )
        .append (
            $('<td valign="top">')
            .attr('id','price'+total+'')
            .attr('class','sum')
            .append(
                $('<input type="text" />')
                .css({width:'60px'})
                .attr('id','price'+total+'')
                .attr('name','price[]')
            )		
        )	
        .append (
            $('<td valign="top">')
            .attr('id','summa'+total+'')
            .attr('class','sum')
            .append(
                $('<input type="text" />')
                .css({width:'60px'})
                .attr('id','summa[]')
                .attr('name','summa[]')
            )		
        )
        .append (
            $('<td valign="top" align="center">')
            .css({width:'40px'})
            .append (
                $('<span id="progress_'+total+'" class="padding5px"><a  href="#" onclick="$(\'#tr_image_'+total+'\').remove();" class="ico_delete"><img src="img/delete.png" alt="del" border="0"></a></span>')
            )
        )
        .appendTo('#table_container');
    }

    $(document).ready(function() {
        add_new_field();
    });


Я написал код который суммирует значения двух полей и выводит его в третье.

function sum() {
        var
            price = $('td#price'+total+' input').val(),
            quantity = $('td#quantity'+total+' input').val();
            $('td#summa'+total+' input').val(price * quantity);
    }
    
    $(document).focus().click(function() {
        $('td#price'+total+' input, td#quantity'+total+' input').keyup(sum);
        $('td#summa'+total+' input').change(sum);
    });


Проблема в том, что если добавить новые инпуты, в тех что были добавлены ранее, перестаёт работать функция. Я понимаю, что проблема в переменной total, а вот как мне сделать так, чтобы функция срабатывала во всех инпутах - в новых, и тех что были добавлены ранее ?
Ответить с цитированием