2012-06-01 14 views
18

Odağı gizli metin kutusu öğesine nasıl ayarlayabilirim? Javascript kullanarak gizli metin kutusu alanına odaklanma ayarı

ben bu alan görünür hale ne zaman komut dosyası iyi çalıştı yukarıda bu, burada

alert(document.activeElement.id); returns null. 

çalışmıyor,

document.getElementById("textControl_fd_component_JSON_TASK_NStext64").focus; 

kullanarak çalıştı Ama.

Yanlış anlamadığım herhangi bir tahmin var mı?

+0

Sadece gizli bir alana odaklanamayacağınızı ispatladığınızı kanıtladığınızı düşünüyorum. Bunu neden yapmak istediğini genişletebilir misin? Daha iyi bir yaklaşım olabilir. –

cevap

39

bunu gerçekten yapmak gerekirse, şeffaf kutu yapmaya, gizli değil:

opacity:0; 
filter:alpha(opacity=0); 

Alternatif olarak, kullanıcı yanlışlıkla tıklayın olmadığından emin olmak istiyorsanız, sadece iç girişi yerleştirmek

width: 0; 
overflow: hidden; 

div Ancak, kesinlikle belki keydown/keypress olayları kullanarak, ne istediğinizi yapmak için daha iyi bir yol yoktur. Apsillers cevabı kullanarak

+0

Çok teşekkür ederim, beni birkaç saatten beri kurtardın :) – Bren

+0

Bu iyi, ideal olarak, elde edilmesine izin veren görünmez ('display: none;') DOM düğümlerine koyabileceğiniz bir 'focusable' özelliği olurdu. Odaklama (bunun üstesinden gelmek ve kullanıcı tarafından görünür hale getirmek için herhangi bir javascript olup olmadığına bakmaksızın). – AJP

+0

Bu davranış için bir yerde resmi başvuru var mı? Bu, "görünürlük: gizli" de geçerli mi? Ya da sadece 'göster: yok'? – jbyrd

0

, katılan bu aynı durum için benim kurulumu:

  1. konuma sahip bir üst div: bağıl;
  2. bir alt form öğesi pozisyonu: mutlak; Z-endeksi: 0; opaklık: 0; Filtre: alfa (opaklık = 0);
  3. ikinci çocuk eleman pozisyonu: mutlak; z-endeksi: (değer> 0) (şeffaf girişi kapsayacak şekilde konumlandırılmış).

Aspiller'lerin sorusu, sorulan soruya verilen cevap doğrudur, ancak bunun ne zaman gerekli olduğuna dair pratik bir örnek vermek istedim. "Fantezi" girişleri (örneğin radyo/kontrol elemanları, seçim öğeleri) yapan herhangi bir komut dosyası/eklenti kullanıyorsanız, özellikle form öğeleri gizlenebilir. Ancak komut dosyanız veya eklentiniz kötü yazılıyorsa, klavye erişilebilirliğini ortadan kaldırabilir. Tüm öğelerin odaklanmasını sağlayarak bir formun akışını korumak, web sitesi kullanıcıları için çok fazla baş ağrısından tasarruf edebilir.

0

Geçici bir yardıma gereksinim duyarsanız ve opaklık değerini değiştiremezseniz, bazı js ekleyebilirsiniz.