2012-03-01 4 views
-1

Je veux concevoir la forme avec beaucoup de champs. Certains champs dépendent de la première liste déroulante. Comment concevoir pour afficher uniquement ceux qui sont nécessaires?Comment concevoir un formulaire dynamique?

+0

Je crains que la réponse soit «à la main en utilisant jquery». – danihp

+0

Je veux concevoir une classe django valide avec tous les champs et montrer seulement requis – Nips

+0

Une solution peut être définie comme des entrées dépendantes cachées et changer par un contrôle visible avec jquery lorsque cela est nécessaire. – danihp

Répondre

1

Vous devez masquer ceux que vous pourriez ne pas avoir besoin dans CSS.

Ensuite, vous devez créer javascript pour afficher/masquer les champs en fonction de la valeur de la sélection. Exemple avec jQuery:

$('select[name=yourselect]').change(function() { 
    switch($(this).val()) { 
     case 'someval': 
      $('input[name=somefield]').show(); 
      $('input[name=someotherfield]').hide(); 
      break; 
     // add as many cases as you want, one for each value 
    } 
}) 

// this is useful when your select has an initial value, 
// to show/hide the fields depending on the initially selected option 
$('select[name=yourselect]').trigger('change'); 

Vous pouvez également server side checks with your form clean() method.

0

Si vous souhaitez créer un formulaire dynamique en plusieurs étapes dans lesquelles la deuxième forme dépend des valeurs du premier formulaire, vous pouvez utiliser l'Assistant Formulaire Django. C'est bien si vous ne voulez pas utiliser jquery. De cette manière, vous pouvez également appliquer une fonction de nettoyage personnalisée pour des formulaires individuels. Vérifiez la documentation form wizard. J'espère que cela vous sera utile.

Questions connexes