Muuta pudotusvalikon valittua arvoa jQueryn avulla

Minulla on pudotusluettelo, jossa on tunnettuja arvoja. Yritän asettaa pudotusluettelon tiettyyn arvoon, jonka tiedän olevan olemassa jQueryn avulla. Käyttämällä tavallista JavaScriptiä tekisin jotain tällaista:

ddl = document.getElementById("ID of element goes here");
ddl.value = 2; // 2 being the value I want to set it too.

Minun on kuitenkin tehtävä tämä jQueryn avulla, koska käytän CSS-luokkaa valitsimena (typerät ASP.NET asiakastunnukset...).

Tässä on muutamia asioita, joita olen kokeillut:

$("._statusDDL").val(2); // Doesn't find 2 as a value.
$("._statusDDL").children("option").val(2) // Also failed.

Miten voin tehdä sen jQueryn avulla?

Update

Joten kuten kävi ilmi, olin oikeassa ensimmäisellä kerralla:

$("._statusDDL").val(2);

Kun laitan hälytyksen juuri yläpuolelle, se toimii hyvin, mutta kun poistan hälytyksen ja annan sen toimia täydellä nopeudella, saan virheen

Valittua ominaisuutta ei voitu asettaa. Invalid Index

En ole varma, onko se jQueryn vai Internet Explorer 6:n (arvaan Internet Explorer 6:n) vika, mutta se on hirveän ärsyttävää.

Ratkaisu

jQueryn dokumentaatio toteaa:

val] tarkistaa tai valitsee kaikki valintapainikkeet, valintaruudut ja valintavaihtoehdot, jotka vastaavat arvojen joukkoa.

Tämä käyttäytyminen on jQueryn versioissa 1.2 ja uudemmissa.

Todennäköisesti haluat tämän:

$("._statusDDL").val('2');
Kommentit (9)

Kokeile vain

$("._statusDDL").val("2");

eikä {{³"a}{³"a}n{³"a}{³"a}

$("._statusDDL").val(2);
Kommentit (0)

Miten lataat arvot pudotusluetteloon tai määrität, mikä arvo valitaan? Jos teet tämän Ajaxin avulla, syy siihen, miksi tarvitset viivettä ennen valintaa, voi olla se, että arvoja ei ole ladattu silloin, kun kyseinen rivi suoritetaan. Tämä selittäisi myös sen, miksi se toimi, kun laitoit riville hälytyslausekkeen ennen tilan asettamista, koska hälytystoiminto antaisi riittävän viiveen tietojen lataamiseen.

Jos käytät jotakin jQuery'n Ajax-menetelmää, voit määrittää takaisinkutsufunktion ja laittaa $("._statusDDL").val(2); takaisinkutsufunktioosi.

Tämä olisi luotettavampi tapa käsitellä asiaa, koska voit olla varma, että menetelmä suoritetaan, kun tiedot ovat valmiita, vaikka se kestäisi yli 300 ms.

Kommentit (0)