javascript - Rails3中动态更新html页面

标签 javascript jquery ruby-on-rails ruby-on-rails-3

我有一个 html 文本区域,它使用 ajax-autocomplete,当我开始输入时,它会填充下拉列表。当我从下拉列表中选择一个条目时,它会将某个字段设置为该对象的 id。

一旦我得到了对象的ID,有没有办法可以做这样的事情?

<% @myObjects.find(1) do |myObj| %>
  <h1><%= myObj.attr1 %><h1>
  <h2><%= myObj.attr1 %><h2>
<% end %>

现在,当我获取对象的 id 时,我正在使用 jquery 的 attr() 函数来设置暴露我不太喜欢的 JavaScript 逻辑的值。有什么办法可以激活磁场吗?或者,隐藏字段并在填充 id 的位置显示字段并让 ruby​​ 使用 myObjects.find 发挥其魔力?

更新:

现在我在 View 中填充字段的方式如下:

$(function() {      
  // Executes a callback detecting changes with a frequency of 1 second
  $("#id_element_placeholder").observe_field(1, function(){                                     
    //alert('Change observed! new value: ' + this.value );
    $.ajax({
      type: "GET",
      dataType: "json",
      url: "/myobj/get/" + this.value,
      success: function(data){
        $('#last_name').attr('value', data.myobj.last_name);
        $('#first_name').attr('value', data.myobj.first_name);                  
      }
    });
  });
}); 

有没有办法避免暴露上述 JavaScript 代码?

最佳答案

你的javascript没有任何问题,你似乎对客户端和服务器端技术感到困惑。一旦页面发送给您的用户,Ruby 就无法直接更新您的页面。它位于您的网络服务器上,并且您的页面已发送到客户端浏览器。但是,它可以发送 javascript 以响应您的应用程序从客户端浏览器发出的进一步请求,以准确执行此操作,就像您所做的那样。

您可以向浏览器发送一个新的 html 片段并替换整个节点,但实际上没有意义。你所做的和其他使用 javascript 的人是一样的。

关于javascript - Rails3中动态更新html页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4765757/

相关文章:

javascript - 不能在 js 中使用 string.match

javascript - 如何制作这个正则表达式?

php - 将 .js 文件中的 JQuery 选择器添加到 .php 中

ruby-on-rails - Rails 中的布局文件夹是什么?

mysql - Rails/MySQL : How to query for a record by its full 'created_at' timestamp?

javascript - Jquery $.post 未按预期工作

javascript - Paypal 智能按钮 : Is there any way onApprove runs without the payment having completed?

jquery - 为什么我在 CSS 中的样式不起作用,因为我在 HTML 文件和 CSS 文件中给出了适当的类名?

jquery - SlickGrid 自定义 CSS 问题

ruby-on-rails - Rake 总是出现段错误和核心转储,即使在成功时也是如此