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 更新后保留原始值的主要内容,如果未能解决你的问题,请参考以下文章

Rails best_in_place gem 不更新数据

best_in_place - 在视图中使用更新的值

使用 attachment_fu,您如何编辑现有照片、仅更新缩略图并保留原始未编辑?

使用谷歌应用脚​​本更新数据验证规则时如何保留原始范围

在 MS SQLServer 中交换两行保留原始主键且无需手动更新

我在 forEach 中更新的变量,返回到它们的原始值 [重复]