Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Jquery + select

Napríklad tak, že najprv prebehneš všetky možnosti a uložíš si ich do nejakej štruktúry. Následne, keď budeš potrebovať zobraziť len niektoré možnosti, tak ich tam povkladáš.

Príklad:

$('body').ready(function(){
	$('.treti_uroven').each(function() {
		// Toto si vytvoríš len raz.
		var data = new Object;
		for (var i = 0, n = this.options.length; i < n; ++i) {
			var option = this.options[i];
			if (!data[option.className])
				data[option.className] = new Array;
			data[option.className].push(option);
		}

		// Takéto niečo budeš volať vždy, keď budeš chcieť zmeniť možnosti.
		// Musíš si samozrejme zabezpečiť prístup k premennej data
		// (najjednoduchšie pomocou closure alebo globálnej premennej).
		var options = data['t8'];
		this.options.length = 0;
		for (var i = 0, n = options.length; i < n; ++i) {
			this.options[i] = options[i];
		}
	});
});
Edit:
Ešte napíšem, ako by sa to malo robiť poriadne. Viacúrovňový select by mal ideálne fungovať aj bez JavaScriptu (výnimkou sú samozrejme single page aplikácie). Začneš formulárom, kde na serveri vygeneruješ select prvej úrovne a ostatné selecty necháš prázdne. Pri obsluhe POST metódy doplníš položky pre select ďalšej úrovne podľa zvolenej hodnoty v selecte predchádzajúcej úrovne.

Potom to môžeš vylepšiť JavaScriptom tak, že si do stránky vložíš premennú s hodnotami pre všetky úrovne. Ďalšie selecty môžeš tak vypĺňať aj bez POSTu. Ak sú dáta pre všetky úrovne príliš veľké, použiješ Ajax.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny