0

我正在使用 yiibooster,它确实是前端的一个很好的扩展,我现在的问题是我想删除在必填字段中呈现的红色 *,但在模型中维护所需的验证器,有人知道该怎么做吗? ???

谢谢

4

4 回答 4

2

这是由必填字段验证器生成的标签示例:

<label for="User_email" class="required">
    Email Address <span class="required">*</span>
</label>

因此,您可以通过将此类添加到您网站的 CSS 中来隐藏它:

span.required {
    display: none;
}
于 2014-02-14T07:51:24.560 回答
1

如果你想轻松实现你想要的,我建议你这样做,这是最简单的方法(在我看来):

只需尝试找到*选择器(IDCLASS)名称。(使用萤火虫或任何检查器)然后在你的下面做document.ready()

$(SELECTOR).remove();

笔记

  • 可能会动态*创建
  • 这只是一个建议,您可以找到任何其他可能的方式,例如为了CHANGING THE CSS CLASSDISPLAY:NONESOURCE MODIFICATION
于 2014-02-13T21:28:36.290 回答
1
<?php echo $form->textFieldGroup($model, 'username',array('label'=>Yii::t('model','Username'))); ?>

或编辑TbActiveForm.php的第 1223 行

echo $this->labelEx($model, $attribute, $options['labelOptions']);

echo $this->label($model, $attribute, $options['labelOptions']);
于 2014-12-29T23:10:01.670 回答
0

Red *正在根据您的模型中的验证器定义添加。你有两个选择。
首先在您的模型中添加您想要的属性On => 'scenario name'required validator所以你可以控制 yii-booster 组件的行为,因为它们只应用那些与scenario模型匹配的规则。例如:

array('password_repeat', 'required', 'on'=>'register'),

Red *只会在register场景中显示(如果您通过 设置它$model->setScenario('register');),并且在正常情况下red *不会显示。

您的另一个选择是当您根据required模型中的验证器规则标记的属性创建表单元素时,您可以阻止它*显示,但这种方式不会忽略它,validation rule并且如果您尝试在此表单字段为空时提交表单你会从 yii 得到错误(因为你只是解决显示但在后台你有你需要的验证器)。对于此方法,您只需labelyii-booster表单元素中提供:

<?php echo $form->textFieldGroup($model,'textField',
            array(
                'wrapperHtmlOptions' => array(
                    'class' => 'col-sm-5',
                ),
                'hint' => 'In addition to freeform text, any HTML5 text-based input appears like so.',
         >>>>>  'label' => 'Your new value for label which will have no red *',
            )
        ); ?>
于 2016-01-19T21:04:54.250 回答