Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Поле для редактирования в таблице.


Автор: Evgen11 14.3.2014, 16:17
Здравствуйте.
Подскажите новичку, как можно "допилить" такой функционал.

У меня в таблице выводятся некоторые данные которыя я могу прямо по месту редактировать, сделал так:

1. Допустим есть поле которое нужно по месту отредактировать:
Код

<div class='tt_price' data-id='<?=$r->id?>'>1200</div>


JavaScript:
Код

// Клик по полю, берём значение, вставляем input с этим значением.
$('.tt_price').livequery('click', function(){        
        $(this).html("<input class='dynamicField' data-id='"+$(this).data('id')+"' type='text' value='"+$(this).text()+"' />");
    })

// Далее вешаем на input событие keypress и focusout.
$(".dynamicField").livequery('keypress', function(e){
        if(e.keyCode==13) $(this).focusout(); // По нажатию Enter
    })
    .livequery('focusout', function(){
        var _t = $(this);
        $.ajax({url:'update_field', type:'POST',
            data:{
                   'id':_t.data("id"),
               'newval':_t.val()
                }
            }).success(function(d){ _t.parent().text(d) })
    })

На сервере в БД обновляется поле и приходит обратно, его вставляем обратно по месту.

Вот, теперь самое интересное, всю голову уже сломал.
Как можно на событие focusout повесить функцию с callback

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)