2014-11-05 9 views
9

Podczas rejestracji potrzebuję określonej wiadomości, ale z jakiegoś powodu nie wyświetla ona mojej wiadomości.Yii2: Reguły checkboxa nie działają przy rejestracji na warunkach

pomóż

Mam następujące zasady:

['acordul_tc', 'required', 'on' => ['register']], 
['acordul_tc', 'integer', 'max' => 1, 'message' => 'my test message'], 

i html:

<div style='position:relative; float:left; padding:5px;'> 
<div style='float:left; padding:5px;'> 
    <?php 
     echo $form->field($model, 'acordul_tc', 
     ['options' => ['tag' => 'span',], 
     'template' => "{input}"])->checkbox(['checked' => false]); 
    ?> 
</div> 
<div style='float:left; padding:5px;'> 
    <?php 
     echo \Yii::t('user', 'acordul_tc_start') . 
     Html::a(Yii::t('diverse', 'Termenii si Conditiile'), 
       ['site/terms-and-conditions']) . 
      \Yii::t('user', 'acordul_tc_end'); 
    ?> 
</div> 
</div> 
<div class="col-lg-12"> 
<?php 
    echo $form->field($model, 'acordul_tc', 
     ['template' => "{error}"]) 
     ->error(); 
?> 

+0

pan ślepo akceptowane odpowiedź tylko dlatego, że pokazuje komunikat o błędzie. Idealnie pole wyboru musi stać się CZERWONE nie jest zaznaczone razem z błędem. –

Odpowiedz

28

Jeśli chcesz wyświetlić komunikat o błędzie, gdy pole wyboru nie jest zaznaczone , spróbuj zastosować tę zasadę:

['acordul_tc', 'required', 'on' => ['register'], 'requiredValue' => 1, 'message' => 'my test message'] 

Oznacza to, że atrybut jest wymagany i musi być równy 1, w przeciwnym razie wyświetli komunikat o błędzie.

+0

Nie zaznacza to pola wyboru jako "Czerwony". Powyższa implementacja daje tylko komunikat o błędzie. Co zrobić, aby zaznaczyć pole wyboru jako "czerwony"? –

+0

@olchick .. Hi chcę, aby moje pole wyboru było domyślnie zaznaczone. Próbowałem, ale nie pomaga .. ' pole ($ model, 'status') -> checkbox (['checked' => true]); ?> '. Każda pomoc będzie doceniona. –

0
  1. Zaakceptowana odpowiedź nie oznacza zaznaczenia pola wyboru "Kolor czerwony".
  2. Pokazuje tylko komunikat o błędzie pod polem wyboru, które jest częściowo akceptowane, rozwiązanie musi być akceptowalne tylko wtedy, gdy pokazuje poprawne efekty sprawdzania poprawności w interfejsie użytkownika, a nie tylko komunikat.
  3. Poniżej przedstawiono zmianę kodu w FORMULARZU, aby uzyskać oczekiwany wynik dla użytkownika końcowego.

    echo $form->field($model, 'acordul_tc', 
           ['options' => ['tag' => 'span'], 
           template' => "{input}"] 
          ) 
          ->checkbox(['checked' => false, 'required' => true]); 
    
  4. Poniżej znajduje się obraz objaśniający wszystkie.

enter image description here

+0

Przyjęta odpowiedź jest poprawna, pokazuje komunikat i zaznacza pole wyboru jako czerwone. Oto mój zrzut ekranu https://monosnap.com/file/5TsxoX6gunITaQFH28dbZ5liYpxMYq.png – leealex

Powiązane problemy