1

我的 Rails 应用程序上有这些标记,当我 tr 时这些表单不起作用

<div class="span5 mg myform">
<div class="span5 mg">
<ul class="clearfixremo formmenu">
    <li class="lefty blocky boldy rightbrd"><i class="icon-pencil"></i> Post</li>
    <li class="lefty blocky boldy myphotoupload "> <i class="icon-camera"></i> Photo</li>
</ul>
</div>
    <div class="span5 mg">
    <div class="row">
        <div class="span4">
 <%= simple_form_for(current_user.posts.new, :remote => true ,:html => { :multipart =>    true } ,:class=>"form-horizontal" ) do |f| %>

 <div class="field">

<%= f.text_area :body ,:rows=>1%>

     <%= f.select :privacy,["public","friends","only me"] %>

 </div>
 </div>
 </div>
 </div>


<div class="span5 mg">


 <div id="pactions"  class="actions">
  <%= f.submit "#{t 'share'}",:id=>"share"%>
  </div>
 <% end %>

    </div>

   </div>

它在 html 标记上向我显示表单在选择菜单之前关闭,当我在选择菜单之前移动提交按钮并在字段 div 内它的工作时

4

1 回答 1

2

修复 ERB 的格式和缩进,问题应该会变得明显:开始标签(包括<%= ... do %>)必须匹配它们的结束标签(包括<% end %>)。你不能:

<div>
    <form>
    </div>
</form>

你需要:

<div>
    <form>
    </form>
</div>

<form>打开一个<div>

<%= simple_form_for(current_user.posts.new, :remote => true ,:html => { :multipart =>    true } ,:class=>"form-horizontal" ) do |f| %>
    <div class="field">

然后尝试关闭其中四个:

</div>
</div>
</div>
</div>

当浏览器看到无效的 HTML 时,它会尝试通过关闭<form>你的背后来修复它,它会假装你说:

</div>
</form>
</div>
</div>

一旦发生这种情况,您的表单就会被破坏,并且没有任何事情可以按照您的预期进行。

修复标签嵌套,使所有内容都以与标签打开相反的顺序关闭。并开始正确地格式化你的代码,这样结构就很明显了,计算机不会在意,但你会的。

于 2013-07-18T04:18:09.610 回答