Izvēlētās vērtības maiņa nolaižamajā sarakstā, izmantojot jQuery

Man ir nolaižamais saraksts ar zināmām vērtībām. Es mēģinu iestatīt nolaižamajā sarakstā konkrētu vērtību, par kuru zinu, ka tā pastāv, izmantojot jQuery. Izmantojot parasto JavaScript, es darītu kaut ko līdzīgu:

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

Tomēr man tas jādara ar jQuery, jo es izmantoju CSS klasi savam selektoram (muļķīgi ASP.NET klienta identifikatori...).

Šeit ir dažas lietas, ko es esmu izmēģinājis:

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

Kā to izdarīt ar jQuery?

Atjaunināt

Tātad, kā izrādās, man bija taisnība pirmajā reizē ar:

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

Kad es ievietoju brīdinājumu tieši virs tā, tas darbojas labi, bet, kad es noņemu brīdinājumu un ļauju tam darboties ar pilnu jaudu, es saņemu kļūdu

Nevar iestatīt izvēlēto īpašību. Nederīgs indekss

Neesmu pārliecināts, vai tā ir jQuery vai Internet Explorer 6 kļūda (es domāju, ka Internet Explorer 6), bet tas ir briesmīgi kaitinoši.

Risinājums

jQuery's dokumentācija norāda:

[jQuery.val] pārbauda jeb selects visas radio pogas, izvēles rūtiņas un izvēles iespējas, kas atbilst vērtību kopumam.

Šāda uzvedība ir jQuery versijā 1.2 un jaunākās versijās.

Jūs, visticamāk, to vēlaties:

$("._statusDDL").val('2');
Komentāri (9)

Vienkārši izmēģiniet ar

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

nevis ar

$("._statusDDL").val(2);
Komentāri (0)

Kā jūs ielādējat vērtības nolaižamajā sarakstā vai nosakāt, kuru vērtību izvēlēties? Ja jūs to darāt, izmantojot Ajax, tad iemesls, kāpēc jums ir nepieciešama aizkave pirms izvēles veikšanas, varētu būt tas, ka vērtības nav ielādētas laikā, kad tika izpildīta attiecīgā rinda. Tas arī izskaidrotu, kāpēc tas darbojās, kad pirms statusa iestatīšanas rindā ievietojāt brīdinājuma paziņojumu, jo brīdinājuma darbība nodrošinātu pietiekamu kavēšanos, lai dati tiktu ielādēti.

Ja izmantojat kādu no jQuery's Ajax metodēm, varat norādīt atsaukšanas funkciju un pēc tam savā atsaukšanas funkcijā ievietot $("._statusDDL").val(2);.

Tas būtu uzticamāks veids, kā risināt šo jautājumu, jo jūs varētu būt pārliecināts, ka metode izpildās, kad dati bija gatavi, pat ja tas aizņēma vairāk nekā 300 ms.

Komentāri (0)