2010-06-15 3 views
0

salut à tous j'utilise le framework cakephp pour mon projet. dans sur mon formulaire je prends une case à cocher cliquez sur cette deux autres zone de texte sont affichés. en utilisant la méthode validée par cakephp je valide les données du formulaire mais je veux que lorsque la case à cocher n'est pas cochée, il évite la validation pour cette zone de texte. il vérifie seulement quand la case est cochée. alors plz aidez-moi.comment empêcher la validation d'un élément

merci à l'avance

Répondre

1

Vous pouvez utiliser vos modèles beforeValidate servicecall pour cela et ajouter des critères de validation supplémentaires pour ce modèle.

Par exemple:

function beforeValidate($options = array()) 
{ 
    if(!empty($this->data['Model']['fieldOne'])) 
     $this->validate['fieldTwo'] = array(/*normal validation rules*/); 
    return true; // Needed or validation fails 
} 
0

Vous pouvez utiliser custom validation methods:

var $validate = array(
    'checkbox1' => 'checkboxRule' 
); 

// If checkbox1 is checked, requires checkbox2 to be checked as well 
function checkboxRule() { 
    if (!empty($this->data[$this->alias]['checkbox1'])) { 
     return !empty($this->data[$this->alias]['checkbox2']); 
    } 
    return true; 
} 

Vous pouvez également annuler d'autres domaines, comme checkbox2, en même temps en appelant $this->invalidate('checkbox2') dans votre méthode personnalisée.

0

En outre, vous pouvez décharger la validation de votre commande comme ceci:

unset($this->Model->validate); 
+0

grâce mais empêcher la validation de tout modèle element.and je veux sélectionné empêchent –

Questions connexes