Hallo Sie können eine javascript
function
hinzufügen Formularübermittlung zu verhindern, aber dies wird scheitern, wenn Javascript deaktiviert ist, so dass Sie sowohl javascript
und server side validation
verwenden sollten. Definieren
**Server Side validation**
1) ein variable
in Ihrer model
(virtuellen Variable)
Model.php
class Model extends CActiveRecord
{
/**
* @return string the associated database table name
*/
public $checkbox_list_name;
2) Definieren Sie es in sicheren Regeln in Ihrem Modell
public function rules()
{
array('checkbox_list_name','safe'),
}
3) in Ihrer Form.php
<?php echo $form->checkBoxList($model,'checkbox_list_name', array(
'Users' => 'All Users',
'Claim' => 'Claim Request',
'Business' => 'Add Business'
), array('id'=>'checkbox-list-id','class'=>'checkboxlist', 'required')). "<br>"; ?>
<?php echo $form->error($model,'checkbox_list_name'); ?>
4) In YourController.php
Überprüfen Sie, ob die Kontrollkästchen werden geprüft oder nicht
public function actionYouraction() {
$model = new Model();
$this->performAjaxValidation($model);
if (isset($_POST['Model'])) {
if($_POST['Model']['checkbox_list_name'] == ''){
$model->addError('checkbox_list_name', 'Select At least one!!!'); // this will through error if checkbox is not selected
}else{
$model->attributes = $_POST['Model'];
$model->save();
}
$this->render('view', array(
'model' => $model,
));
}
Javascript-Methode - dies wird die Länge der Textfelder zählen und falsche retun wenn nicht mindestens ausgewählt ein
<script type="text/javascript">
$('#user-form').submit(function() {// relace user-form id with your CActiveRecord form id
if(!($('input[type="checkbox"]:checked').length)) {
alert("Select at least one!!!");
return false;
}
return true;
});
</script>
danke !!!! sehr ausführliche Antwort. – lakshay