【发布时间】:2011-04-02 18:51:17
【问题描述】:
所以我有一个表格用于向视频添加主题(标签):
<%= form_for @video, :url => {:action => "update"}, :remote => true do |f| %>
<div class="field">
<%= f.text_field :topic_names, :class => "topic_field" %>
</div>
<%= f.submit "Add Topic" %>
<% end %>
但是,我希望表单最初不存在并且仅在用户单击链接后出现。最初,我想使用 jQuery 使用以下代码从不同的文件中加载表单:
$("#edit_topics_link").click(function(e){
e.preventDefault();
$(".topic_form").load("topic_form.html.erb");
$("#edit_topics_link").hide();
});
问题在于,当我从原始视图中删除表单时,我得到了这个 JS 错误:Uncaught TypeError: Cannot set property '_renderItem' of undefined
我认为这可能与表单是通过 AJAX 请求处理的事实有关,因为我将 :remote => true 选项传递给它。
无论如何,由于这个错误,我正在考虑将表单保留在视图中并将其隐藏,然后在用户单击链接时显示它。这是一个坏主意吗?如果我应该在表单中加载,如何防止出现 JS 错误?
【问题讨论】:
标签: ruby-on-rails ajax ruby-on-rails-3 jquery