Ich habe zwei Auswahloptionen wie unten angegeben.Verwenden von jQuery Auserwähltes, um Optionen basierend auf einer vorherigen Auswahl einzuschränken
<div class="wrapper">
<select id="industrySelect" class="chosen-industry-select" data-placeholder="select industry" multiple>
<option value=""></option>
<option value="1">Business</option>
<option value="2">Education</option>
<option value="3">Healthcare</option>
</select>
<select id="verticalMarketSelect" class="chosen-verticalMarket-select" data-placeholder="select vertical market" multiple>
<option value=""></option>
<option value="1" industryValue="1">Retail</option>
<option value="2" industryValue="1">Construction</option>
<option value="3" industryValue="1">Automotive</option>
<option value="4" industryValue="2">University</option>
<option value="5" industryValue="2">Elementary School</option>
<option value="6" industryValue="2">High School</option>
<option value="7" industryValue="3">Hospital</option>
<option value="8" industryValue="3">Doctor Office</option>
<option value="9" industryValue="3">Dentist</option>
</select>
</div>
Die industryValue
ist einfach ein Attribut I für Filterzwecke erstellt, wie die Informationen für die Auswahl von zwei verschiedenen SQL-Tabellen gezogen werden. industryValue
bezieht sich direkt auf den Wert wie für verticalMarketSelect
in den Optionen festgestellt (dh industryValue = „1“ auf eine Auswahl von Geschäfts mit einem Wert von 1.
Was ich versuche zu tun ist, um nur beziehen würde Optionen in der verticalMarketSelect
wenn die entsprechende Option aus dem industrySelect
oben ausgewählt wenn keine Optionen ausgewählt werden, werden die Optionen für verticalMarketSelect
nicht sichtbar sein sollte
EDIT:.. ich sehr wichtige Information vergessen: I verwende das jQuery Chosen Plugin mit beiden Selects mehrere Auswahlen sein.
EDIT: Ich fand einige jQuery von einer ähnlichen Implementierung, aber es scheint nicht für meine Bedürfnisse zu arbeiten.
jQuery('#industrySelect').chosen().change(function() {
var selected = [];
jQuery('#industrySelect').find("option").each(function() {
if (this.selected) {
selected[this.value] = this;
}
})
.each(function() {
this.disabled = selected[this.value] && selected[this.value] !== this;
});
jQuery('#verticalMarketSelect').trigger("chosen:updated");
});
Haben Sie ganze 'wählen # verticalMarketSelect' ausblenden möchten oder wollen Sie leer auswählen angezeigt werden? – stjepano
Ich möchte eine leere Auswahl anzeigen. Oder noch besser, lassen Sie die Auswahl deaktiviert, bis eine Auswahl in #industrySelect getroffen wird. – scallahan1119
@SeanCallahan Ich habe meine Antwort bearbeitet und eine Demo hinzugefügt, bitte schau sie dir an. Bitte beachten Sie, dass css ist nicht in der Demo –