Ruby on rails Firefox中的部分错误渲染

Ruby on rails Firefox中的部分错误渲染,ruby-on-rails,Ruby On Rails,我试图生成一个隐藏的div,其中包含一个rails部分。我的意图是使用这个隐藏的div作为fancybox在弹出窗口中打开编辑表单的目标。 我的部分代码如下所示: <div style="display:none"> <div id="inline-edit-form-<%=feed_item.id%>" class="inline-edit-form"> <%= form_for (feed_item) do |f| %&g

我试图生成一个隐藏的div,其中包含一个rails部分。我的意图是使用这个隐藏的div作为fancybox在弹出窗口中打开编辑表单的目标。 我的部分代码如下所示:

<div style="display:none">
      <div id="inline-edit-form-<%=feed_item.id%>" class="inline-edit-form">
        <%= form_for (feed_item) do |f| %>
              <%=render :partial => 'calendars/form', :locals => { :f => f }%>
       <% end %>
       </div>
  </div>

'日历/表格',:locals=>{:f=>f}%>
现在,在Chrome中,布局如预期的那样,部分最初是隐藏的。Fancybox在点击源链接并正常工作时,成功地渲染了该部分。但是在Firefox中,默认情况下隐藏的DIV并不隐藏,所有控件都会显示出来。我检查了Chrome和Firefox上的HTMLDOM结构,发现两者有很大的区别。 Chrome中的标记(正确):


事件

上述标记是正确的,符合预期。Firefox中令人震惊的标记是:

<div style="display: none;">
      <div class="inline-edit-form" id="inline-edit-form-598">
       </div>
</div>
<div style="margin: 0pt; padding: 0pt; display: inline;"></div>
<div>
    <label for="calendar_event">Event</label><br>
    <input type="text" value="Another interesting important event" size="30"  
           name="calendar[event]" id="calendar_event" class="inline-edit-input">
</div>

事件
这种标记不仅不正确,甚至根本没有呈现表单标记。我反复检查CSS和DOM结构,但Firefox只是选择破坏布局


有什么帮助吗?

谢谢你的提示。有一个验证错误修复了该错误。错误是我被包含在表中。将隐藏的div移到表外后,问题得到解决。

嵌套一定有问题。甚至Chrome标记也无效:表单标记在打开标记后立即关闭。您能检查浏览器收到的原始输出吗?@heikki:您需要向右滚动才能看到完整的标记。@ved:请发布浏览器看到的输出好吗?右键单击>查看-source@ved:您是否已将文档类型设置为utf-8?请尝试将内容类型的http标头设置为utf8@Ved:对我来说,这是一个指示器,表明浏览器接收到的标记中有什么东西弄乱了。一些浏览器试图修复无效的标记,它们以不同的方式进行修复。这就解释了为什么Chrome和Firefox的源代码看起来不同。
<div style="display: none;">
      <div class="inline-edit-form" id="inline-edit-form-598">
       </div>
</div>
<div style="margin: 0pt; padding: 0pt; display: inline;"></div>
<div>
    <label for="calendar_event">Event</label><br>
    <input type="text" value="Another interesting important event" size="30"  
           name="calendar[event]" id="calendar_event" class="inline-edit-input">
</div>