Удалить красный * в обязательных полях 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 *',
)
); ?>