【问题标题】:Hide label for input field隐藏输入字段的标签
【发布时间】:2015-01-16 22:53:53
【问题描述】:

我试图在 _form.php 中隐藏特定字段的标签,但没有成功。

我尝试了几种变体,但没有一个有效:

<?= $form->field($model, 'sample_text')->textArea('label'=>false) ?>

和备用代码:

<?= $form->field($model, 'sample_text')->textArea('label'=>'') ?>

隐藏标签的正确方法是什么?

【问题讨论】:

    标签: forms yii yii2 yii-widgets


    【解决方案1】:

    好的,我找到了解决方案。

    <?= $form->field($model, 'sample_text')->textArea()->label(false) ?>
    

    【讨论】:

    • 我尝试了您的解决方案,但仍然在该区域显示空间。如何删除它?
    • 为什么这个答案会列在页面底部?恕我直言,这是迄今为止最好和最简单的解决方案。
    • 不删除 html 标签 - 这是错误的答案,请查看 enableLabel 选项
    • @AshokChandrapal 在下面看到我的回答:stackoverflow.com/a/54908797/2429318
    【解决方案2】:

    或者您可以修改特定字段的template 值并从中删除{label} 部分。即:

    <p><?= $form->field($page, 'image', [
        'template' => '<div class=\"\">{input}</div><div class=\"\">{error}</div>'
    ])->fileInput() ?></p>
    

    【讨论】:

      【解决方案3】:

      在深入研究核心代码后撰写本文时,我发现这是隐藏标签并防止为hiddenInput 呈现带有错误等的完整字段模板的最佳解决方案。

      <?=
      $form->field($model, 'address_uuid', [
          'template' => '{input}',
          'options' => ['tag' => false]
      ])->hiddenInput([
          'readonly' => true,
      ])->label(false)
      ?>
      

      【讨论】:

      • 我很惊讶为什么您的答案没有被标记为最佳。
      • 应该是。 OP @joshi,请考虑,因为这将帮助其他人看到当前最好的解决方案
      • 比实际的 yii 文档和 dotblock 建议更好。此解决方案允许正确验证隐藏输入作为活动表单的一部分。您是否相信他们建议使用 Html::activeHiddenInput() 而不是使用 label(false)
      【解决方案4】:
      <?= $form->field($model, 'password', [
          'inputOptions'=>[
              'class'=>'form-control',
              'placeholder'=>'Password'
          ]
      ])->passwordInput()->label(false); ?>
      

      【讨论】:

      • 只抛出一段格式错误(已修复)的代码并不是一个好的开始。
      • @HelgaIliashenko 不,不是。这个网站不是一堆有效的答案。这是世界上最著名的问答网站,有自己的规则。这些规则之一是提供全面的答案,而不是复制粘贴的代码。投票直接违反这里最重要规则之一的答案显然是错误的。
      • @HelgaIliashenko 你是这个社区的一员,你的意见在这里很重要——当然。但是,当您的意见支持一种直接被禁止的写作风格(或至少被指出是写好答案的好方法)时,我觉得有责任向您指出这一点。这个特殊的解决方案对你有用,但对其他人不起作用(没有适当的文字解释),可能没有你那么有经验。并且所有 SE 用户都应该倾向于在这里得到对 all 有益的答案,而不仅仅是对 some 有益的答案。这是我的意见。欢迎您不同意。
      【解决方案5】:
      <?= $sffForm->field($sffModel, 'url_keywords', ['enableLabel' => false])->textInput(['placeholder' => 'URL / keywords']) ?>
      

      【讨论】:

      • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
      • 这也删除了额外空间的偏移量
      【解决方案6】:

      您可以在创建表单字段类时禁用标签

      $form->field($model, 'email', [
       'inputOptions' => [
          'enableLabel' => false,
        ]
       ])   
      

      【讨论】:

      • 不起作用,因为它已更改为&lt;?= $form-&gt;field($formImage, 'fileUrl', ['enableLabel' =&gt; false])-&gt;textInput(); ?&gt;
      【解决方案7】:

      在表单输入字段中隐藏标签的最佳方法是将空值传递给模型中“attributeLabels()”函数的数组。

      即您输入了文件名“client_name”,因此在“attributeLabels()”函数的返回数组中,将空字符串作为数组值传递

      public function attributeLabels()
      {
          return [
      
              'id' => 'ID',
              'gender' => 'Gender',
              'client_name' => '',
              .
              .
              .
                ]
       }
      

      【讨论】:

      • 这不会删除标签。只是隐藏不显示文本。但是标签元素仍然存在,占用空间。
      • 你是对的,它只隐藏标签,但这是最初提出的问题。 '隐藏输入字段的标签',所以它做到了,隐藏输入字段标签。
      猜你喜欢
      • 2021-12-20
      • 2011-07-25
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多