2014-11-05 7 views
9

All'iscrizione, ho bisogno di un determinato messaggio, ma per qualche motivo, non riesce a mostrare il mio messaggio.Yii2: le regole di casella di controllo non funzionano alla registrazione per i termini e le condizioni

favore aiuto

ho le seguenti regole:

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

e il codice 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

Hai accettato ciecamente la risposta proprio perché mostra un messaggio di errore. Idealmente la casella di controllo deve diventare ROSSA non viene controllata insieme con l'errore. –

risposta

28

Se si desidera visualizzare il messaggio di errore quando casella di controllo è non selezionato , prova questa regola

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

Ciò significa che l'attributo è obbligatorio e deve essere uguale a 1, altrimenti l'errore di visualizzazione con il messaggio.

+0

Questo non evidenzia la casella di spunta come 'Rosso'. L'implementazione sopra riportata fornisce solo un messaggio di errore. Cosa fare per evidenziare la casella di spunta come "Rossa"? –

+0

@olchick .. Ciao, voglio rendere la mia casella di controllo come selezionata per impostazione predefinita. Ho provato questo, ma non aiuta .. ' campo ($ modello, 'stato') -> checkbox (['checked' => true]); ?> '. Qualsiasi aiuto sarebbe apprezzato. –

0
  1. La risposta accettata non contrassegna la casella di controllo richiesta come "ROSSO" colorata.
  2. Mostra solo il messaggio di errore sotto la casella di controllo che è parzialmente accettata, la soluzione deve essere accettabile solo se mostra gli effetti di convalida appropriati sull'interfaccia utente e non solo sul messaggio.
  3. Di seguito è necessario modificare il codice su FORM per ottenere l'output previsto per l'utente finale.

    echo $form->field($model, 'acordul_tc', 
           ['options' => ['tag' => 'span'], 
           template' => "{input}"] 
          ) 
          ->checkbox(['checked' => false, 'required' => true]); 
    
  4. Di seguito è l'immagine che spiega tutto.

enter image description here

+0

La risposta accettata è corretta, mostra il messaggio e contrassegna la casella di controllo come rossa. Ecco il mio screenshot https://monosnap.com/file/5TsxoX6gunITaQFH28dbZ5liYpxMYq.png – leealex

Problemi correlati