【问题标题】:How to identify hash elements in a loop when using jquery使用jquery时如何识别循环中的哈希元素
【发布时间】:2014-01-28 16:48:02
【问题描述】:

我有以下散列 (@messages),它们是按发件人/发件人分组的消息:

{'Tom'=>[#<ShortMessage id: 16, content: "ABC", created_at: "2014-01-28 16:35:33", from: 'Tom'>, #<ShortMessage id: 15, content: "DEF", created_at: "2014-01-28 13:11:20", from: 'Tom'>], 'Jerry'=>[#<ShortMessage id: 5, content: "XYZ", created_at: "2014-01-22 09:48:52", from: 'Jerry'>]}

在我看来,我循环遍历哈希以打印出发件人姓名和他们的消息组。我还为每组消息提供了一个表单,用户可以在其中回复该特定发件人

<% @messages.each do |sender, message| %>
 <p><%= sender %></p>
 <% message.each do |msg| %>
  <p><%= msg.content %></p>
 <% end %>
// reply form
 <%= form_for @message, remote: true do |f| %>
  <%= f.hidden_field :from, value: from %>
  <%= f.text_field :content %>
  <%= f.submit "Reply" %>
 <% end %>
<% end %>

我正在使用 ajax 和 jquery 提交表单并将新的回复文本添加到消息组的末尾,因此每次发送回复时页面都不必刷新

当循环遍历哈希时,我如何引用哪一组消息来附加新的回复?

例如,如果我想回复 Tom 并填写他的回复表单,我该如何附加到那组消息而不是 Jerry 的?

我不成功的 jquery 看起来像这样:

<script>
 $('#container').on('ajax:success', function(event, data){
 if (data.succ) {
  // handle your success somehow, like show a new field
 } else { 
  // something went wrong
 }
})
</script>

【问题讨论】:

    标签: jquery ruby-on-rails ruby ajax


    【解决方案1】:

    我可能会将ajax:success 绑定到表单本身而不是#container(顺便说一句,这不是问题)。那么 t 就像

    $(this).before(...)
    

    【讨论】:

      猜你喜欢
      • 2017-01-17
      • 2012-03-05
      • 2021-08-25
      • 2019-07-30
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      相关资源
      最近更新 更多