【问题标题】:Missing asterisk in the label of the required field in cakephpcakephp 中必填字段的标签中缺少星号
【发布时间】:2013-11-23 12:55:16
【问题描述】:

我在 Cakephp 2.4.2 中显示必填字段时遇到问题。

如果我使用

$this->Form->input('username');

在呈现的 html 中我有

<div class="input text required">
    <label for="UserUsername">Username</label>
    <input name="data[User][username]" type="text" id="UserUsername" required="required"/>
</div>

标签有星号:用户名*

如果我想使用带有水平表单样式的 Twitter Bootstrap,我的输入会变成这样:

<div class="form-horizontal">
    <div class="form-group">
        <label for="username" class="col-xs-3"></label>
        <div class="col-xs-4">
            <?php echo $form->input('username',array('id' => 'username','label' => false)); ?>
        </div>
    </div>
</div>

导致

<div class="form-horizontal">
    <div class="form-group">
        <label for="username" class="col-xs-3">Username</label>
        <div class="col-xs-4">
            <div class="input text required">
                <input name="data[User][username]" id="username" type="text" required="required"/>
            </div>
        </div>
    </div>
</div>

标签丢失星号:用户名

基本上,如果 Cake 输入有选项 'label' => false 它将有不带星号的输入标签:

$this->Form->label('User.username');
$this->Form->input('username',array('label' => false));

结果

<label for="UserUsername">Username</label>
<div class="input text required">
    <input name="data[User][username]" type="text" id="UserUsername" required="required"/>
</div>

标签中没有星号。

在使用 Cake Form Helper 时,在必填字段的标签中添加星号的方法是什么?

【问题讨论】:

    标签: cakephp twitter-bootstrap


    【解决方案1】:

    我建议您查看Boost Cake 插件,用于 twitter 引导程序与 CakePHP 的集成。

    【讨论】:

    • 我会看看建议的插件,但仍然存在标签从包含输入的 div 中滑出的问题,无论通过“for”链接。
    • Boostrap 的标签嵌套和 css 类与 CakePHP 有很大的不同,所以使用 bootstrap 时没有得到类似的显示也就不足为奇了。
    • 即使没有 Bootstrap,如果我使用 Form Helper 和 'label' => false 选项,标签仍然不在 div 中,并且没有星号。除了不使用表单助手之外,还有其他解决方法吗?
    • 使用 Boost Cake,您可以更新 FormHelper 文件以在需要输入时包含 *。或者您可以明确指定标签文本。这将自动生成您围绕该 php/cakephp 脚本包装的所有 HTML。一块石头用来杀死两只鸟:)
    【解决方案2】:

    如果您像我一样,只是在搜索如何在所有必需的输入上显示星号(使用 BoostCake 插件时),那么这个 css 对我有用:

    .required label:after {
        color: #d00;
        content: " *"
    }
    

    【讨论】:

      【解决方案3】:

      在使用 Cake Form Helper 时,在必填字段的标签中添加星号的方法是什么?

      您是否要在标签中硬编码星号?这应该可以解决问题

      $this->Form->input('username', array('label'=> 'Enter username here*'));
      

      【讨论】:

      • 其实没有,我想要 $this->Form->label('User.username'); $this->Form->input('username',array('label' => false));如果该字段是必需的,则该标签将获得 *。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多