在rails中通过id隐藏jquery对话框

时间:2012-06-08 09:50:50

标签: jquery ruby-on-rails ruby-on-rails-3 jquery-ui dialog

我有一个带有对象列表的索引页面(@contacts),我需要能够使用ajax编辑弹出窗口中的每个@contact条目。对象清单:

  <% @contacts.each do |contact| %>
    <div><%= contact.name %> | <%= link_to 'Edit', edit_contact_path(contact), :id => "edit_contact_dialog_link_#{contact.id}" %></div>
    <% @contact = contact %><%= render :template => "contacts/edit" %>
  <% end %>

这里我要为所有编辑链接添加唯一ID。在edit.html.erb中做得很好:

<div id="edit_contact_dialog_<%= @contact.id %>">
  <h1>Editing contact</h1>
  <%= render 'form' %>
</div>

现在,在索引页面上,我有一个联系人列表(包含唯一的编辑链接edit_contact_dialog_link_ID)和编辑表单(包含唯一的div ID edit_contact_dialog_ID

我需要隐藏所有edit_contact_dialog_ID框,并在每个edit_contact_dialog_link_ID点击打开相应的对话窗口,但不知道如何。

我的contacts.js

  $("#edit_contact_dialog_(here i need a regexp or smthng?)").dialog({
    autoOpen: false,
    width: 455,
    modal: true
  });

  $("#edit_contact_dialog_link_???").click(function(){
    $("#edit_contact_dialog_???").dialog("open");
    return false;
  });

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

使用class属性

$(".dialog").dialog({
    autoOpen: false,
    width: 455,
    modal: true
});

$(".edit_handler").click(function(){
    var id = $(this).attr('id');
    $("#edit_contact_dialog_" + id).dialog("open");
    return false;
});