2010-09-06 4 views
6

Est-il possible, via jQuery, de sélectionner un multisélect pour un select, différemment?jSélecteurs jQuery: multisélect vs select

Le problème que j'ai est que j'ai un js général appelé qui fait quelque chose à un ID. Cependant, sur certaines pages, il a un but différent. Par conséquent, je voudrais reconnaître la différence.

$("select#categories[multiselect]").doOneThing; //multiselect 
$("select#categories").doAnotherThing; //normal single select 

Possible?

Répondre

15

Le nom d'attribut correct pour un élément <select> avec plusieurs options sélectionnables est multiple. Vous pouvez utiliser le sélecteur "has attribute" pour sélectionner des éléments avec l'attribut multiple, et le combiner avec : not() pour sélectionner les éléments qui n'autorisent qu'une seule sélection.

Par conséquent, votre sélecteur jQuery doit être:

$("select#categories[multiple]") // <select> with multiple 
$("select#categories:not([multiple])") // <select> with single only 

http://www.w3.org/TR/html401/interact/forms.html#edef-OPTION

0

Si vous avez quelque chose comme ça (XHTML):

<select id="categories" size="3" multiple="multiple"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
</select> 

Vous pouvez créer un sélecteur, qui vérifie le multiple -attribut. Essayez quelque chose comme ceci:

$('select#categories[multiple="multiple"]').doOneThing();