gpt4 book ai didi

javascript - 当我使用 best_in_place 进行更改时,我想更新页面上的另一个文本值

转载 作者:行者123 更新时间:2023-11-30 05:49:21 26 4
gpt4 key购买 nike

编辑 #2

在我看来我应该能够使用 javascript 来 JSON 解析任何 respond_with_bip(@buildingTour)返回,因为那是我需要的更新对象(我需要访问 @buildingTour.monthly 的更新值)。但是,当我尝试解析它时,我没有运气。我读过一些关于 respond_with_bip 破坏 JSONParse 的内容,所以也许这就是正在发生的事情。

如果有人能帮我解析@buildingTour 以获取每月属性(即,向我展示 javascript),将不胜感激。

编辑

@MikeKijewski - 澄清一下,我的 View 是显示 View ,即我们只处理一行。我知道您提到的 SO 文章是处理一个包含多行的表,这有点棘手。我不明白的是为什么我的 Controller 中的“respond_with_bip”还没有返回我需要的东西。这是我的 Controller :

  def update
@buildingTour = BuildingTour.find(params[:id])

respond_to do |format|
if @buildingTour.update_attributes(params[:building_tour])
format.json { respond_with_bip(@buildingTour) }
else
format.json { respond_with_bip(@buildingTour) }
end
end
end

那么为什么我不能使用“respond_with_bip”返回的数据来更新页面上的字段呢?

现在我只使用 location.reload();每当有问题的两个字段(sqft 和 rentalrate)更新为 best_in_place,然后显示第三个字段(每月)的适当值。


我正在使用 best_in_place在我的 Rails 应用程序中(用于就地编辑 sqft 和 rate 的值)并且效果很好,但有一个异常(exception):

我的模型中有一个名为 monthly 的计算属性.当我使用 best_in_place 更改值时, 我需要 monthly值在页面上重新计算和更新。

这是 monthly 的代码在我的模型中:

  def monthly
if sqft && rate
monthly = (sqft * rate) / 12
end
end

这是我认为的代码片段(这是我想要更新的文本 - 它位于 ID 为“rental-details”的范围内):

<strong><%= number_to_currency(@buildingTour.monthly, :precision => 0) %></strong>

这是我在 best_in_place 时识别的 javascript进行更改,然后在理论上更新上面的值:

$('.best_in_place').change(function() {
$.ajax({
success: function() {
$("#rental-details strong").text('<%= number_to_currency(@buildingTour.monthly, :precision => 0) %>');
}
});
});

因此所有代码都“有效”且没有错误。 . .除了它正在拉动每月的旧值。我通过删除 number_to_currency 来测试这个来自 JavaScript,当我更改其中一个其他值时,它肯定会从页面上的值中删除货币格式(所以我知道 JavaScript 正在被触发并更新文本)。

我想也许 JavaScript 只是触发得太快了(而且数据库还没有用 sqft 和 rate 的新值更新),但我尝试多次更改 sqft 和 rate 的值,但月度值从未更新.

无论如何<%= number_to_currency(@buildingTour.monthly, :precision => 0) %>也是如此部分 JavaScript 仅在页面加载时调用一次?如果是这样,你如何强制它查询 monthly每次?

有一件事要指出... monthly不是 building_tours 中的列表,我只是即时计算。

感谢您对此问题的任何见解。我用 google 和 stackoverflow 搜索了这个问题,它们都让我觉得我当前的代码应该可以正常工作。

最佳答案

我最终创建了一个 javascript 函数,用于监视具有特定类(.best_in_place 或类似的东西)的元素是否更新,然后从 Controller 操作(在您的情况下是 BuildingTour?)获取 json 响应并替换一个表行与包含更新的 .monthly 值的新表行。查看这篇 SO 文章:

Updating various DOM elements after best_in_place update

关于javascript - 当我使用 best_in_place 进行更改时,我想更新页面上的另一个文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15865026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com