Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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, а вот как мне сделать так, чтобы функция срабатывала во всех инпутах - в новых, и тех что были добавлены ранее ?
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2014, 01:58
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

http://api.jquery.com/delegate/
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2014, 01:21
Новичок на форуме
Отправить личное сообщение для runapa Посмотреть профиль Найти все сообщения от runapa
 
Регистрация: 03.04.2014
Сообщений: 2

Спасибо за подсказку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получить значения полей zlodiak jQuery 4 14.12.2012 14:00
Как заполнить значения для скрытых полей из <input type=”text”> ? Surlik jQuery 2 13.11.2012 00:43
Получить значения доп. полей select-option arcanerain Общие вопросы Javascript 11 29.09.2010 03:02
Собрать значения всех полей формы vvsh Events/DOM/Window 3 09.11.2009 00:35
php не принимает значения динамических полей (кроме браузера IE) Serge xcom Events/DOM/Window 2 23.08.2009 12:15