我正在使用best_in_place对数据表进行页内编辑 在ruby-on-rails应用程序中。就地编辑工作,但我有一个 失败的角落案例。行中的一对项目(device_name, generic_name)必须是唯一的。如果它们不是唯一的,那么服务器端 代码传回一组带有更改的generic_name的名称 这一对独一无二。我使用以下coffeescript来更新 显示。
jQuery ->
$('.best_in_place[data-bip-object="full_dpoint"]').bind(
"ajax:success", (event, d) ->▫
return if ! d?
data = JSON.parse(d)
if ! data.dpoint?
return
else
item_to_edit = "#best_in_place_full_dpoint_" + data.dpoint.dpoint_id + "_generic_name"
$(item_to_edit).text(data.dpoint.generic_name)
)
此代码有效(IE正确地使用服务器提供的页面更新页面) 新的通用名称),但如果我然后点击'generic_name' 字段,(进入编辑模式),默认编辑文本更改回来 一开始就是什么(页面下载时间)。我有 尝试将许多不同的页面元素设置为新的 通用名称,包括以下所有内容:
$(item_to_edit).attr('data-bip-original-content', data.dpoint.generic_name)
$(item_to_edit).attr('data-bip-value', data.dpoint.generic_name)
$(item_to_edit).attr('original-value', data.dpoint.generic_name)
$(item_to_edit).attr('bipValue', data.dpoint.generic_name)
$(item_to_edit).attr('bipvalue', data.dpoint.generic_name)
一切都无济于事。我在dom中试图寻找原始的地方 值可能会存储,但除了这些之外没有找到任何其他内容。
有什么想法吗?
TIA。
伦纳德
答案 0 :(得分:0)
试试吧
的javascript:
$(document).ready(function () {
/* Activating Best In Place */
jQuery(".best_in_place").best_in_place();
var old_value;
$(document).on('change', '.not_abort', function (e) {
console.log(e.target.value);
old_value = e.target.value;
});
$(document).on('ajax:error', '.not_abort', function (e) {
console.log(e);
e.target.innerHTML = old_value;
$(e.target).data('bipOriginalContent', old_value);
});
})
视图:
best_in_place @device_name, :email, class: 'not_abort'