2011-06-30 18 views
5

jQuery doğrulama kullanıyorum. Tüm etiket olarakCSS seçicileri - CSS'de 'for' nasıl seçilir?

<label class="error" for="username" generated="true"> 

CSS ile 'için' bazında tam olarak bu seçebilirsiniz aynı class = hata var: Ne zaman, Doğrulayıcı olanlar şimdi geçerli yaratıyor olduğu için

?

Bunu nasıl jQuery ile ayırmayı biliyorum - ama her zaman en temiz ve en saf yolu arıyoruz. Herhangi bir öneri çok takdir edildi. (CSS2) kullanarak Pete

+0

yılında

.error[for=username] { } 

benzersiz etiket elemanlarını üreten eğer, wouldent jq için her etikete bazı benzersiz kimlikler eklemek uygun olabilir seçim seçimleri? – John

+0

@john - 'inputs' benzersiz bir kimlik var - ama jQuery Validator bunları kopyalamıyor - jQery tarafından onları (ID ile girdiler) arayabilir, bir sonraki öğeyi bulup ona sınıf ekleyebilirim (sınıfla etiketlemek için başka bir sınıf daha) hata) - ama bu benim sorumun noktası değildi. Saf css çözümü arıyorum. – Iladarsda

+0

@jAndy - Bu, dahili bir projedir - sadece Chrome ve sadece ben. – Iladarsda

cevap

12

attribute selector:

.error[for="username"] 

Bu IE8 + ve tüm modern tarayıcılarda çalışır. as explained here, sen htmlFor kullanmalıdır for maç için:


IE7'nin özellik seçici aracı işte. Eğer IE7 desteğe ihtiyacı varsa

Yani, bunu kullanın:

.error[for="username"], .error[htmlFor="username"] 

Teşekkür IE7, iki kat daha uzun olması gerektiği gibi üzerinde Cevabımı yapmak için.

+0

Çoğaltması Sadece bu URL referansının ne demeye çalıştığını anladığımdan emin olun. "for", IE7'yi başarısız yapan bir anahtar kelime, doğru mu? .error [foo = 'bar'] gibi bir şey kullanırsanız,

beklendiği gibi eşleşir mi? –

+0

@Michael Edenfield: Doğru. – thirtydot

3

Herhangi bir öznitelik [] gösterimi kullanılarak CSS veya jQuery ile seçilebilir. CSS, sadece HTML için değil, XML benzeri bir sözdizimine uygulanır. Yapı iyi oluşturulduğu sürece hangi özniteliklerin "geçerli" olduğunu bilmez (veya ilgilenmez).

.error[for='username'] 
    { 
    } 

veya için

css olarak

.error[for^='userprefix'] 
    { 
    } 
1

"ile başlar": jQuery

$('.error[for=username]') 
+0

jQuery 1.6'nın öznitelik değerleri etrafında teklifler gerektirdiğine inanıyorum. –

İlgili konular