2011-05-19 74 views
0

我正在使用RoR编写谷歌地图应用程序,其中地图上的每个标记代表由名为资产的模型定义的对象。当我编辑资产时,表示该资产的标记变为可拖动并获取dragend事件处理程序。ror通过js形式访问

当资产被丢弃并且调用处理程序时,我检索其新位置的经度和纬度。我宏大而强大的计划是使用新的经纬度更新编辑表单(使用标准RoR技术显示在地图旁边)。

事件handeler是写在JS和形式看起来有点像:

<%= form_for(@asset, :remote=>true) do |f| %> 
    <% if @asset.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@asset.errors.count, "error") %> prohibited this asset from being saved:</h2> 

     <ul> 
     <% @asset.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </div> 
    <div class="field"> 
    <%= f.label :latitude %><br /> 
    <%= f.text_field :latitude %> 
    </div> 
    <div class="field"> 
    <%= f.label :longitude %><br /> 
    <%= f.text_field :longitude %> 
    </div> 
    <div class="field"> 
    <%= f.label :description %><br /> 
    <%= f.text_field :description %> 
    </div> 
    <div class="field"> 
    <%= f.label :remaining %><br /> 
    <%= f.text_field :remaining %> 
    </div> 
    <div class="field"> 
    <%= f.label :hits %><br /> 
    <%= f.text_field :hits %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

那么有效了什么我问的是:如何我指的是在JS领域?

+0

我对你的问题有些困惑,但我会采取一个措施。你想根据用户做客户端更新表单属性?如果是这种情况,Ajax就是要走的路。 – John 2011-05-20 06:32:34

回答

0

修正了它。出于某种原因,我正在使用js来查看动态添加的html内容(例如表单域和whatnot)。我没有解决他们错误。简单和丑陋的解决方案是添加与您可能在稍后添加的元素相匹配的id的元素,使其不可见,并在需要时覆盖它们。我确信有这样做的更好方法。