2010-09-06 15 views
6

Ist es möglich, über jQuery, eine Mehrfachauswahl auf eine Auswahl auszuwählen, anders?jQuery Selektoren: Multiselect vs wählen

Das Problem, das ich habe ist, dass ich eine allgemeine js genannt, dass etwas zu einem id tut. Auf einigen Seiten hat es jedoch einen anderen Zweck.

Deshalb würde Ich mag über den Unterschied zu erkennen.

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

Möglich?

Antwort

15

Der korrekte Attributname für ein <select> Element mit mehreren auswählbaren Optionen ist multiple. Sie können den Selektor "has attribut" verwenden, um Elemente mit dem Attribut multiple auszuwählen, und ihn mit : not() kombinieren, um Elemente auszuwählen, die nur eine einzige Auswahl zulassen.

Daher Ihre jQuery-Selektor sollte sein:

$("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

Wenn Sie so etwas wie dieses (XHTML) haben:

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

Sie einen Selektor erstellen könnte, die überprüft, für das multiple -Attribut. Probieren Sie etwas wie folgt aus:

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