best_in_place在更新后保留原始值

问题描述:

我正在使用best_in_place在ruby-on-rails应用程序中对数据表 进行页内编辑。就地编辑工作,但我有一个 失败的角落案件。该行中的一对项目(device_name, generic_name)必须是唯一的。如果它们不是唯一的,则服务器端 代码将具有改变的generic_name的一组名称返回,以使 该对是唯一的。我使用以下coffeescript更新 显示屏。best_in_place在更新后保留原始值

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) 
      ) 

此代码的工作(即它正确地更新与服务器提供 新的通用名称的页面),但如果我再点击回到“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) 

一切都无济于事。我试图找到原始值 可能存储在哪里,但是除此之外没有发现任何其他值。

任何想法?

TIA。

伦纳德

+0

快速的问题...值获取的page..what改变之后你得到如果你做一个页面重新加载?它是否显示您的JavaScript代码正在改变的值,还是会回复原来最好的旧字段? – uday

+0

重新加载后,它会正确显示更改后的值。我还应该补充一点,我不需要重新加载页面以获取更改后的值,如果我只是在“编辑”框外单击,也会返回到正确(更改)的值。 – Leonard

试试吧

的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' 
+0

不工作...再试一次? – Leonard