Ausblenden von Optionen eine Auswählen mit JQuery
Okay, beginnen wir mit einem Beispiel.
Halten Sie daran, dies ist nur ein Beispiel.
<select id = "selection1">
<option value = "1" id = "1">Number 1</option>
<option value = "2" id = "2">Number 2</option>
<option value = "3" id = "3">Number 3</option>
</select>
Nun von hier aus haben wir eine dropdown-Liste mit 3 Optionen.
Was ich nun tun möchte ist ausblenden eine option.
Hinzufügen style = "display:none"
wird nicht helfen.
Die option erscheint nicht in der dropdownlist, aber mit den "Pfeiltasten" Sie können immer noch wählen Sie es aus.
Im wesentlichen, es tut genau, was der code sagt. Es ist nicht angezeigt, und es bleibt dort.
Einer JQuery-Funktion von $("#1").hide()
wird nicht funktionieren.
Plus, ich don ' T wollen nur verstecken die option möchte ich komplett entfernen.
Jede Möglichkeit auf, das zu tun?
Muss ich Eltern/Geschwister/Kind-Elemente? Wenn dem so ist, bin ich mir noch nicht sicher, wie.
Jede Hilfe auf diesem würde sehr geschätzt werden. Danke.
Eine andere Frage - hängt Es mit dem
Ok, so fand ich heraus, dass es ist ein .remove()
erhältlich in JQuery. Funktioniert gut.
Aber was ist, wenn ich will, ihn zurück zu Holen?
if(Bedingung)
{
$(this).entfernen();
}
Kann ich Schleifen diese. Sollte nicht kompliziert sein.
Aber die Sache, die ich versuche zu tun, ist dies:
Maximale Kapazität der Klasse: (Eingabefeld hier)
Select-Zimmer: (Dropdown hier)
Was ich möchte, es zu tun ist, aktualisieren Dropdown mit einer Funktion wie .change()
oder .keyup
.
Ich könnte die dropdown nur nach etwas eingegeben wird. Bei einem Wechsel oder einem keyup, führen Sie in der dropdown entsprechend.
Aber was ich Tue, ist dieses:
$roomarray = mysql_query("SELECT *
AUS
(
SELECT *,
CASE
WENN Typ = 'Klassenzimmer' DANN 1
WENN Typ = "Computer-Labor", DANN 2
WENN Typ = 'Hörsaal', DANN 3
WENN Typ = 'Auditorium', DANN 4
ENDE ClassTypeValue
AUS dem Zimmer
) t
BESTELLUNG PER ClassTypeValue, maxppl, roomID");
echo "<select id = \"room\">";
while ($rooms = mysql_fetch_array($roomarray))
{ ?>
<option value=<?php echo $rooms['roomID']; ?> id=<?php echo $rooms['roomID']; ?>><?php echo $rooms['type']; echo " "; echo $rooms['roomID']; echo " ("; echo $rooms['maxppl']; echo ")"; ?></option>
<?php
}
echo "</select>";
Ja, ich weiß, es ist sehr chaotisch.
Ich Plane, es zu ändern später.
Aber die Frage ist jetzt diese: Kann ich Umschalten, die Entfernung der Optionen nach, was eingegeben wurde?
Ist es möglich, dies zu tun mit einem dropdown aus einer Schleife? Weil ich sicher wie die Hölle nicht halten können, ausführen von SQL-Abfragen. Oder ist das auch eine option? Denn wenn es möglich ist, ich denke immer noch, es ist eine schlechte.
- BTW: ..ist nicht gültig für eine id-oder class-name beginnt mit einer Zahl, siehe stackoverflow.com/questions/448981/...
- Ich habe mich verändert, die Antwort in eine plugin-Unterstützung deaktivieren (entfernen) und aktivieren (anfügen) der Optionen. Ich hoffe, es beantwortet deine Frage(N).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den hide() funktioniert nicht bei Chrome... ich habe experimentiert mit einem work-around und wickelte es in ein plugin, das ich als "ExtraBox". Die Idee ist, zum speichern der Optionen temporär so können wir aktivieren /deaktivieren Sie durch manipulieren des DOM. Ich habe das plugin um es einfacher zu machen zu verwenden.
Ich gebucht habe, den code auf jsFiddle, so können Sie versuchen, es für sich selbst: http://jsfiddle.net/KeesCBakker/HaFRC/. [Hinweis: erste Projekt in jsFiddle, ich Liebe es!]
Html-Beispiel:
Ich habe die folgende jQuery-zu meinem Dokument.die bereit-Funktion:
Das plugin sieht wie folgt aus:
Warum sind Sie Herumspielen mit display-Einstellungen, wenn Sie nur wollen, um das Filterelement entfernen?
und der Spuk ist vorbei.
es tatsächlich möglich ist, zu verbergen
<option>
Knoten, aber nicht cross-browser-kompatibel.$("option")
. dies wird geändert, um eine ID-tag, oder...?option
Elemente. Dies war nur gedacht als Beispiel. Sie noch brauchen würde, um eine Abfrage nach einem bestimmten element.function()
mit einemif()
Anweisung zum auswählen bestimmter Elemente, gefolgt von einem$(this)
. Von dort aus könnte ich die `attr('disable', true);?.hide()
als erwartet.Ich nehme an, dein Selektor ist falsch. Probieren Sie etwas wie dieses (aktualisiert):
Sehen Eltern-Kind-Selektor (parent > Kind).
hide()
funktioniert nicht für meine<option>
. Es funktioniert für Sie?style = "display:none"
. Sie können es nicht sehen, aber Sie können immer wählen Sie es.remove()
Funktion? Ich wusste nie, dass. Dieser funktioniert. Es funktioniert Super. Aber äääh....was ist, wenn ich es wieder kommen wollen? Wird einadd()
Arbeit? Weil ich dachte, dieadd()
erfordert ein gebundenes Feld, nachdem es.Ich habe ein jQuery-Plugin, das löst das sehr schön. Mit ihm, würden Sie dies tun:
Können Sie verstecken und Ihnen zeigen, wie viel Sie wollen, und Sie behalten Ihre ursprüngliche Reihenfolge. Es funktioniert in allen Browsern. Sie können sehen, dass in diesem Beispiel: jsFiddle - Toggle Dropdown-Optionen
Können Sie die Toggle Dropdown-Optionen-plug-in. Wenn Sie nicht wie die plugins, kopieren Sie einfach den JavaScript-code aus, um ein eigenes Projekt der JavaScript-Datei. Finden Sie die Lesen Sie die Dokumentation link für das plug-in für mehr Informationen!
Dies Ist Sehr Einfach In Jquery