2014-11-05 29 views
9

註冊時,我需要某個消息,但由於某種原因,它無法顯示我的消息。Yii2:複選框規則不適用於註冊條款和條件

請幫助

我有以下規則:

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

和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

你盲目地接受,只是因爲它顯示錯誤消息的答案。理想情況下,複選框必須變成紅色,不會與錯誤一起檢查。 – 2017-03-01 08:01:41

回答

28

如果你想顯示錯誤信息未選中複選框時,試試這個規則

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

這意味着該屬性是必需的,並且必須等於1,否則顯示錯誤消息。

+0

這不會突出顯示覆選框爲'紅色'。上面的實現只給出錯誤信息。如何將複選框突出顯示爲「紅色」? – 2017-03-01 08:00:39

+0

@olchick ..嗨,我想使我的複選框默認選中。我試過這個,但是沒有幫助..' field($ model,'status') - > checkbox(['checked'=> true]); ?>'。任何幫助,將不勝感激。 – 2017-07-05 09:29:32

0
  1. 被接受的答案沒有標記required複選框顯示爲'紅'。
  2. 它只顯示部分接受的複選框下面的錯誤消息,只有在UI上顯示適當的驗證效果而不僅僅是消息時,該解決方案才能被接受。
  3. 以下是需要在FORM上完成的代碼更改才能獲得最終用戶的預期輸出。

    echo $form->field($model, 'acordul_tc', 
           ['options' => ['tag' => 'span'], 
           template' => "{input}"] 
          ) 
          ->checkbox(['checked' => false, 'required' => true]); 
    
  4. 下面是解釋所有的圖像。

enter image description here

+0

接受的答案是正確的,它顯示消息並將複選框標記爲紅色。這裏是我的截圖https://monosnap.com/file/5TsxoX6gunITaQFH28dbZ5liYpxMYq.png – leealex 2017-08-14 08:11:46