Açılır listenin seçili değerini jQuery ile değiştirme

Bilinen değerleri içeren bir açılır listem var. Yapmaya çalıştığım şey, açılır listeyi jQuery kullanarak var olduğunu bildiğim belirli bir değere ayarlamak. Normal JavaScript kullanarak şöyle bir şey yapardım:

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

Ancak, bunu jQuery ile yapmam gerekiyor, çünkü seçicim için bir CSS sınıfı kullanıyorum (aptal ASP.NET istemci kimlikleri...).

İşte denediğim birkaç şey:

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

Bunu jQuery ile nasıl yapabilirim?

Güncelleme

Görünüşe göre, ilk seferinde doğru yapmışım:

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

Hemen üstüne bir uyarı koyduğumda sorunsuz çalışıyor, ancak uyarıyı kaldırıp tam hızda çalışmasına izin verdiğimde hata alıyorum

Seçilen özellik ayarlanamadı. Geçersiz Dizin

Bunun jQuery'de mi yoksa Internet Explorer 6'da mı (Internet Explorer 6 olduğunu tahmin ediyorum) bir hata olduğundan emin değilim, ancak bu son derece can sıkıcı.

Çözüm

jQuery'nin belgeleri belirtir:

[jQuery.val], değer kümesiyle eşleşen tüm radyo düğmelerini, onay kutularını ve seçim seçeneklerini kontrol eder veya seçer.

Bu davranış jQuery sürümleri 1.2 ve üzerindedir.

Büyük olasılıkla bunu istiyorsunuz:

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

Sadece dene

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

ile değil

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

Değerleri açılır listeye nasıl yüklüyorsunuz veya hangi değerin seçileceğini nasıl belirliyorsunuz? Bunu Ajax kullanarak yapıyorsanız, seçim gerçekleşmeden önce gecikmeye ihtiyaç duymanızın nedeni, söz konusu satırın yürütüldüğü sırada değerlerin yüklenmemiş olması olabilir. Bu, durumu ayarlamadan önce satıra bir uyarı ifadesi koyduğunuzda neden çalıştığını da açıklar, çünkü uyarı eylemi verilerin yüklenmesi için yeterli bir gecikme sağlayacaktır.

jQuery'nin Ajax yöntemlerinden birini kullanıyorsanız, bir geri arama işlevi belirleyebilir ve ardından geri arama işlevinize $("._statusDDL").val(2); koyabilirsiniz.

Bu, sorunu ele almanın daha güvenilir bir yolu olacaktır çünkü 300 ms'den daha uzun sürse bile veri hazır olduğunda yöntemin yürütüldüğünden emin olabilirsiniz.

Yorumlar (0)