Удалить красный * в обязательных полях Yiibooster

Я использую yiibooster, и это действительно хорошее расширение для веб-интерфейса, мои проблемы сейчас заключаются в том, что я хочу удалить красный *, отображаемый в обязательных полях, но сохраняя необходимый валидатор в модели, кто-нибудь знает, как это сделать????

thankss

4 ответа

Решение

Если вы хотите легко достичь того, чего хотите, я предлагаю вам сделать, как показано ниже, что является самым простым способом (на мой взгляд):

Просто попробуйте найти * Селектор (ID или же CLASS) имя.(с помощью firebug или любого инспектора) Затем просто сделайте, как показано ниже в вашем document.ready():

$(SELECTOR).remove();

ЗАМЕТКИ

  • * МОЖЕТ БЫТЬ ДИНАМИЧЕСКИ СОЗДАН
  • ЭТО ПРОСТО ПРЕДЛОЖЕНИЕ, ВЫ МОЖЕТЕ НАЙТИ ДРУГОЙ ВОЗМОЖНЫЙ СПОСОБ ТАК, КАК CHANGING THE CSS CLASS Чтобы сделать DISPLAY:NONE ИЛИ ЖЕ SOURCE MODIFICATION

Это пример метки, сгенерированной обязательным полем валидатора:

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

Поэтому вы можете скрыть это, добавив этот класс в CSS вашего сайта:

span.required {
    display: none;
}
<?php echo $form->textFieldGroup($model, 'username',array('label'=>Yii::t('model','Username'))); ?>

или отредактируйте строку 1223 TbActiveForm.php из

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

в

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

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 (потому что вы просто решаете показ, но в фоновом режиме у вас есть требуемый валидатор). для этого метода вам нужно только предоставить label в вашем yii-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 *',
            )
        ); ?>
Другие вопросы по тегам