Javascript 在rails3中动态更新html页面

Javascript 在rails3中动态更新html页面,javascript,jquery,ruby-on-rails,ruby-on-rails-3,Javascript,Jquery,Ruby On Rails,Ruby On Rails 3,我有一个html文本区域,它使用ajax自动完成,当我开始键入时,它会填充下拉列表。当我从下拉列表中选择一个条目时,它将为该对象的id设置一些字段 一旦我得到了对象的id,有没有一种方法可以这样做 <% @myObjects.find(1) do |myObj| %> <h1><%= myObj.attr1 %><h1> <h2><%= myObj.attr1 %><h2> <% end %>

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

一旦我得到了对象的id,有没有一种方法可以这样做

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


有没有办法公开上述javascript代码?

您的javascript没有问题,您似乎混淆了客户端和服务器端技术。Ruby无法直接更新发送给用户的页面。它位于web服务器上,您的页面已发送到客户端浏览器。但是,它可以发送javascript,以响应应用程序从客户端浏览器发出的进一步请求,从而完全做到这一点,就像您正在做的那样


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

您的javascript没有问题,您似乎混淆了客户端和服务器端技术。Ruby无法直接更新发送给用户的页面。它位于web服务器上,您的页面已发送到客户端浏览器。但是,它可以发送javascript,以响应应用程序从客户端浏览器发出的进一步请求,从而完全做到这一点,就像您正在做的那样


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

答案很简单,你不能:) 您所做的一切都是可以的,使用AJAX完成这些事情是完成这些事情的方法。
如果您担心暴露,请不要查看javascript,请查看服务器端代码允许用户使用get/post方法做什么;)

答案很简单,你不能:) 您所做的一切都是可以的,使用AJAX完成这些事情是完成这些事情的方法。
如果您担心暴露,请不要查看javascript,请查看服务器端代码允许用户使用get/post方法做什么;)

请提供一些标记和/或尝试从用户的角度解释您试图实现的目标。我真的搞不懂你的目标是什么。此外,用户可以访问您使用Javascript所做的一切。没办法阻止。如果这就是你所说的“暴露我不喜欢的javascript逻辑”的意思。请查看更新后的帖子,我已经将我现在使用的代码发布到html中的填充字段中。我也不太明白你想要实现什么。在Ajax调用返回后,是否要在@myObjects上运行新的查找?请粘贴一些预期结果的HTML。@user140736-为什么担心隐藏JavaScript代码?我可以向您展示几十个版本的其他人进行AJAX调用,然后更新用户界面。你似乎没有在这里做任何惊天动地的事情。话虽如此,如果您仍然担心,只需使用像Consyntools模糊器这样的JavaScript代码模糊器。请提供一些标记和/或尝试从用户的角度解释您试图实现的目标。我真的搞不懂你的目标是什么。此外,用户可以访问您使用Javascript所做的一切。没办法阻止。如果这就是你所说的“暴露我不喜欢的javascript逻辑”的意思。请查看更新后的帖子,我已经将我现在使用的代码发布到html中的填充字段中。我也不太明白你想要实现什么。在Ajax调用返回后,是否要在@myObjects上运行新的查找?请粘贴一些预期结果的HTML。@user140736-为什么担心隐藏JavaScript代码?我可以向您展示几十个版本的其他人进行AJAX调用,然后更新用户界面。你似乎没有在这里做任何惊天动地的事情。话虽如此,如果你还担心的话,那就用一个像Consyntools一样的JavaScript代码模糊器吧。我否决了你一个不完整、极其模糊的答案,这个答案重复了我的话,但简洁而含糊不清看看服务器端代码允许您对post-get/methods'执行什么操作。解释get/post方法。他的应用程序已经在通过ajax发送请求,无论是get还是post,方法都会根据应用程序定义的路径进行响应。我否决了你的回答,因为你的回答不完整,而且非常模糊,重复了我刚才所说的内容,但简洁而含糊不清看看服务器端代码允许您对post-get/methods'执行什么操作。解释get/post方法。他的应用程序已经通过ajax发送请求,无论是get还是post,方法都根据应用程序定义的路由进行响应。
$(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);                  
      }
    });
  });
});