Hallo,
ich habe zur Zeit folgendes Problem.
Ich habe eine Active Record Class namens "UserDbModel" mit folgenden Rules:
return array(
array('email, password', 'required', 'on'=>'login'),
array('username', 'unique', 'attributeName' => 'username', 'caseSensitive' => false, 'className' => 'UserDbModel', 'enableClientValidation' => true),
array('pointsSolo, pointsTeamm', 'numerical', 'integerOnly'=>true),
array('email', 'length', 'max'=>254),
array('username', 'length', 'max'=>20),
array('city', 'length', 'max'=>11),
array('token', 'length', 'max'=>30),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, email, username, city, lastSeen, registered, pointsSolo, pointsTeam', 'safe', 'on'=>'search'),
);
Dazu habe ich ein Formular erstellt:
<?php
$form=$this->beginWidget('CActiveForm', array( 'enableClientValidation'=>true, 'clientOptions'=>array('validateOnSubmit'=>true,),));
echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->label($model,'username'); ?>
<?php echo $form->textField($model,'username', array('value' => $model->username)); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="row">
<?php echo $form->label($model,'city'); ?>
<?php echo $form->textField($model,'city', array('value' => $model->city)) ?>
<?php echo $form->error($model,'city'); ?>
</div>
<div class="row submit">
<?php echo CHtml::submitButton('Save'); ?>
</div>
<?php $this->endWidget(); ?>
Die Validation des Formulars funktioniert mit Ausnahme von der Uniquerule des Usernames. Hat jemand eine Idee wieso? Das Feld wird scheinbar auch validiert aber egal was ich eingebe, danach wird das Feld immer grün also als validiert markiert.
Edit: Ich habe gerade bemerkt, dass die Validation Rule beim Absenden des Formulars greift und dann einen Fehler anzeigt, wie kann ich das auch Clientseitig prüfen? enableClientValidation ist ja auch true gesetzt.
Grüße,
Stefan