Настройка пользовательского ответа с помощью JEditable

Я использую плагин jquery JEditable для обновления некоторых данных на моей веб-странице. После того, как данные будут сохранены через плагин JEditable на сервере, я хочу заменить старый контент в контейнере div новым, который на самом деле отличается от вставленных данных (приложение обработало данные перед их сохранением и добавило дополнительную информацию с помощью Это).

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

$(".editableComments").editable( function(value, settings) {
            selectedId = $(this).attr("id");
            $.ajax({
                url:'ajaxApproveRequests',
                type:'post',
                data:{
                        requestType: "Trans",
                        idList : $(this).attr("id"),
                        comment:  value
                    },
                success: function(data) {
                    if (data != "Error")
                        {
                            $("#"+selectedId).html(data);
                        }
                },
                error: function(req) {
                    alert("Error in request. Please try again later.");
                }
            });
        },
        {
            indicator : "Saving...",
            type   : 'textarea',
            submit : '<input type="button" id="okBtn" value="Ok" onMouseOver="rollOnAutoButton(this)" onMouseOut="rollOffAutoButton(this)" class="autobtn" >',
            cancel : '<input type="button" id="cancelBtn"  value="Cancel" onMouseOver="rollOnAutoButton(this)" onMouseOut="rollOffAutoButton(this)" class="autobtn" >',
            cssclass : "editableArea",
            rows: 5,
            cols: 25,
            onblur    : "ignore"
        }); 

Html-код:

<div class="editableComments">some data</div>

Пожалуйста, предложите, где я делаю неправильно? Заранее спасибо.


person Ankit Jaiswal    schedule 08.11.2011    source источник


Ответы (1)


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

Что я делаю, так это то, что тем временем я возвращаю некоторое временное значение, пока я выполняю свою функцию ajax:

   $(".editableComments").editable( function(value, settings) {
        selectedId = $(this).attr("id");
        $.ajax({
            url:'ajaxApproveRequests',
            type:'post',
            data:{
                    requestType: "Trans",
                    idList : $(this).attr("id"),
                    comment:  value
                },
            success: function(data) {
                if (data != "Error")
                    {
                        $("#"+selectedId).html(data);
                    }
            },
            error: function(req) {
                alert("Error in request. Please try again later.");
            }
        });
        return value; //need the return
    }, ...
person Naftali aka Neal    schedule 08.11.2011