【问题标题】:Laravel 4 Form LabelLaravel 4 表单标签
【发布时间】:2014-12-04 13:24:44
【问题描述】:

我希望在 laravel 表单中添加一个空白的标题标签字段。但是,当我将“标题”字段留空并选择“for”输入时,它会自动将其分配给标签标题。

{{ Form::label('name', '', array('class' => 'label-input', 'id' => 'name'))  }}

我尝试过将该字段留空,但它会自动获取“for”标签。这是输出:

<label for="Name" class="label-input" id="name">Name</label>

提前谢谢你,

【问题讨论】:

  • 你的预期输出是什么?

标签: laravel laravel-4


【解决方案1】:

你可以使用自定义的macro,比如

Form::macro('emptyLabel', function($name, $options = array())
{
    $options = Html::attributes($options);
    return '<label for="'.$name.'"'.$options.'></label>';
});

把它当做

{{ Form::emptyLabel('name', array('class' => 'label-input', 'id' => 'name')) }}

输出将是

<label for="name" class="label-input" id="name"></label>

您可以在app/start/global 或过滤器中添加宏,甚至在路由中。

【讨论】:

    【解决方案2】:

    最简单的解决方案

    {{ Form::open() }}
        {{ Form::label('name', '&nbsp;') }}
        {{ Form::text('name') }
    {{ Form::close() }}
    

    【讨论】:

    • 这将保持元素阻塞并破坏页面的流动。它也没有用于屏幕阅读器的文本,这是标签的一部分。
    【解决方案3】:

    看看 twitter bootstrap 是如何做到这一点的。我认为这是一个很好的解决方案。如果您在项目中使用引导程序,只需将 .sr-only 类添加到标签。否则将css添加到您自己的文件中,它应该可以工作。无论如何,最好为屏幕阅读器包含标签文本。 sr-only 仅代表屏幕阅读器!

    这是他们用于此类的代码:

    .sr-only {
       position: absolute;
       width: 1px;
       height: 1px;
       padding: 0;
       margin: -1px;
       overflow: hidden;
       clip: rect(0,0,0,0);
       border: 0
     }
    

    【讨论】:

      猜你喜欢
      • 2014-07-28
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 2021-02-21
      • 2013-06-18
      • 2013-12-18
      • 2014-11-19
      • 2015-10-29
      相关资源
      最近更新 更多