Imam spustni seznam z znanimi vrednostmi. S pomočjo jQueryja poskušam spustni seznam nastaviti na določeno vrednost, za katero vem, da obstaja. Z običajnim JavaScriptom bi naredil nekaj takega:
ddl = document.getElementById("ID of element goes here");
ddl.value = 2; // 2 being the value I want to set it too.
Vendar pa moram to narediti z jQueryjem, ker za svoj izbirnik uporabljam razred CSS (neumni ASP.NET ID-ji odjemalcev...).
Tukaj je nekaj stvari, ki sem jih poskusil:
$("._statusDDL").val(2); // Doesn't find 2 as a value.
$("._statusDDL").children("option").val(2) // Also failed.
Kako lahko to naredim z jQueryjem?
Update
Torej, kot se izkaže, sem imel prav prvič z:
$("._statusDDL").val(2);
Ko postavim opozorilo tik nad njim, deluje dobro, ko pa odstranim opozorilo in pustim, da teče s polno hitrostjo, dobim napako
Ni bilo mogoče nastaviti izbrane lastnosti. Nepravilen indeks
Nisem prepričan, ali gre za napako v jQueryju ali Internet Explorerju 6 (domnevam, da v Internet Explorerju 6), vendar je to strašno nadležno.
dokumentacija jQueryja navaja:
[jQuery.val] preveri ali izbere vse radijske gumbe, potrditvena polja in možnosti izbire, ki ustrezajo naboru vrednosti.
To obnašanje je v različici jQuery
od različice 1.2
naprej.
Najverjetneje želite to:
$("._statusDDL").val('2');
Kako nalagate vrednosti v spustni seznam ali določate, katero vrednost izbrati? Če to počnete z uporabo Ajaxa, je razlog za zamudo pred izbiro lahko v tem, da vrednosti niso bile naložene v času, ko se je izvedla zadevna vrstica. To bi tudi pojasnilo, zakaj je delovalo, ko ste v vrstico pred nastavitvijo stanja vstavili opozorilno izjavo, saj bi opozorilno dejanje zagotovilo dovolj zamude, da bi se podatki naložili.
Če uporabljate eno od metod jQuery's Ajax, lahko določite funkcijo povratnega klica in nato v funkcijo povratnega klica vstavite $("._statusDDL").val(2);
.
To bi bil zanesljivejši način reševanja težave, saj bi bili lahko prepričani, da se je metoda izvedla, ko so bili podatki pripravljeni, tudi če je trajalo več kot 300 ms.