2010-12-13 7 views
2

J'ai un formulaire avec le code suivant:Utilisation ExtJS avec sélection multiple

Actuellement ce formulaire
<select multiple="multiple" id="something" class="boo" name="foo"> 
    <option value="40">AAAAA</option> 
    <option value="39">BBBBB</option> 
    <option value="15">CCCCC</option> 
</select> 

a une fonction onChange binded, qui ressemble à:

var updateValues = function(event, target, object){ 
    var selectbox = Ext.get(target.id); 
    var values = []; 
    for(i=0; i<selectbox.dom.options.length; i++){ 
     if (selectbox.dom.options[i].selected) 
      {values.push(selectbox.dom.options[i].value);} 
    } 
    callSomeFunc(values); 
} 

S'il vous plaît, me montrer correctement, Pour ce faire, utilisez ExtJS. Je pense qu'il devrait y avoir une fonction, qui renvoie un tableau de valeurs sélectionnées, tout comme val() de jQuery. Si je ne suis pas correct, s'il vous plaît, écrivez un commentaire.

+0

Il serait beaucoup plus facile si vous avez effectivement utilisé des composants Ext au lieu de formulaire HTML ordinaire. – Mchl

+1

Il semble qu'il n'existe aucune fonction ExtJS native qui gère plusieurs sélections. L'utilisation de composants Ext serait une surcharge pour un grand nombre de cas d'utilisation. – edgars

Répondre

0

Si vous souhaitez combiner plusieurs fonctionnalités avec une fonctionnalité de type ComboBox, nous vous recommandons d'utiliser l'extension utilisateur SuperBoxSelect. Si l'aspect et la convivialité ne vous conviennent pas, vous pouvez facilement le modifier en modifiant ou en supprimant le CSS inclus.

Le composant fournit d'excellentes méthodes pour récupérer les valeurs sélectionnées. Lorsque l'utilisateur sélectionne des valeurs, le composant mémorise les valeurs et les stocke en interne. Inversement, si un utilisateur supprime des valeurs, le composant gère également cet état pour vous. Tout ce que vous devez faire, en supposant que la fonctionnalité d'origine vous convient, est d'appeler les méthodes pour obtenir les valeurs une fois que vous êtes prêt à soumettre votre formulaire.

Voici une page de démonstration si vous êtes intéressé. Il est très facile d'inclure dans votre javascript, donc ne vous inquiétez pas que ce soit une extension de l'utilisateur:

http://www.technomedia.co.uk/SuperBoxSelect/examplesRemote.html

Questions connexes