best_in_place 更新后保留原始值
Posted
技术标签:
【中文标题】best_in_place 更新后保留原始值【英文标题】:best_in_place retains original values after update 【发布时间】:2016-04-26 23:23:12 【问题描述】:我正在使用 best_in_place 对数据表进行页内编辑 在 ruby-on-rails 应用程序中。就地编辑工作,但我有一个 失败的极端案例。行中的一对项目 (device_name, generic_name) 必须是唯一的。如果它们不是唯一的,则服务器端 代码传回一组具有更改的 generic_name 的名称以使 这对独特的。我使用以下咖啡脚本来更新 显示。
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)
)
此代码有效(即,它使用服务器提供的正确更新页面 新的通用名称),但如果我再点击“通用名称” 字段,(进入编辑模式),默认编辑文本变回 到最初的样子(页面下载时间)。我有 尝试将许多不同的页面元素设置为新的 通用名称,包括以下所有内容:
$(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 中四处寻找,试图找到原始的位置 value 可能被存储了,但除了这些之外没有找到任何东西。
有什么想法吗?
TIA。
伦纳德
【问题讨论】:
快速问题...在页面中的值更改后..如果您重新加载页面,您会得到什么?它是否显示您的 javascript 代码正在生成的更改值,或者它恢复到由 best in place 输入的旧字段? 重新加载后,正确显示更改后的值。我还应该补充一点,我不需要重新加载页面来获取更改的值,如果我只是在“编辑”框外单击,也会返回正确的(更改的)值。 【参考方案1】:试试看
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'
【讨论】:
以上是关于best_in_place 更新后保留原始值的主要内容,如果未能解决你的问题,请参考以下文章
使用 attachment_fu,您如何编辑现有照片、仅更新缩略图并保留原始未编辑?