Хорошо, вот что я сделал, чтобы решить это. Я взломал jeditable.js
, чтобы он ожидал данные JSON в качестве ответа в обратном вызове AJAX success
, инициированном при отправке редактирования на месте. В объекте JSON есть поле alert
, которое я использую как
var ajaxoptions = {
type : 'POST',
data : submitdata,
dataType: 'text',
accepts: 'json',
url : settings.target,
success : function(result, status) {
data = $.parseJSON(result);
$(self).children('span.indicator').remove();
if(!data.alert) {
$(self).html(data.text);
self.editing = false;
callback.apply(self, [data, settings]);
if (!$.trim($(self).html())) {
$(self).html(settings.placeholder);
}
}
else {
callback.apply(self, [data, settings]);
}
},
error : function(xhr, status, error) {
$(self).children('span.indicator').remove();
onerror.apply(form, [settings, self, xhr]);
}
};
Так что, по сути, если есть строка предупреждения, отличная от NULL, я просто ничего не делаю (кроме триггера функции callback
, если она определена). Кажется, это работает нормально, оставляя поле textarea
на месте с изменениями пользователя внутри него. Мой обратный вызов предупреждает пользователя, что изменение не было отправлено с использованием текста в data.alert
.