【问题标题】:HAML: Content into %input{:type => "Submit"} tagHAML:内容进入 %input{:type => "Submit"} 标签
【发布时间】:2013-06-03 09:08:40
【问题描述】:

感觉很蹩脚。

这个:

          %input{:type => "Submit"}
            %a.btn
              %i.icon-search.icon-white

生成这个:

          <input type="Submit">
          <a class="btn">
            <i class="icon-search icon-white"></i>
          </a>

在哪里:

          %div{:type => "Submit"}
            %a.btn
              %i.icon-search.icon-white

生成这个:

          <div type="Submit">
            <a class="btn">
              <i class="icon-search icon-white"></i>
            </a>
          </div>

我如何获得:

          <input type="Submit">
            <a class="btn">
              <i class="icon-search icon-white"></i>
            </a>
          </input>

??

谢谢

【问题讨论】:

  • 按钮不接受子元素
  • 你不这样做是因为 (X)HTML 中不存在该标记...

标签: html forms haml


【解决方案1】:
 <input type="Submit">
            <a class="btn">
              <i class="icon-search icon-white"></i>
            </a>
          </input>

根据 W3C,此标记无效

输入是单行标签,像这样关闭&lt;input type="button" /&gt; 您不能为 Input 标签放置任何子元素 如果你想用按钮标签做同样的事情,那么你可以做

%button{type="button"}
  %a.btn
    %i.icon-search.icon-white

你会得到

<button class="btn btn-primary" type="button">
  <a class="btn">
    <i class="icon-search icon-white"></i>
  </a>

</button>

【讨论】:

  • 这就是我最终要做的,但我需要一些 js 来获得相同的按钮行为。即使 Bootstrap 默认包含此行为,它也感觉像是一种 hack,而不是一个干净的解决方案。
  • 你不能用 Input 元素来做。您应该使用相同的按钮标签
猜你喜欢
  • 2013-09-07
  • 2011-02-02
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 2011-10-30
  • 1970-01-01
  • 2015-11-14
相关资源
最近更新 更多