jQuery

2010-06-18 5 views
6

kullanarak metin alanının içindeki metin değerini silin. Bunun mümkün olup olmadığı konusunda tam olarak emin değilim, jQuery ve JavaScript geneline gelince oldukça bilgili değilim, ancak bu beni güldürdü. Odakta bir metin girişini temizleyen ve daha sonra hiçbir şey girilmemişse varsayılan değeri görüntüleyen basit bir eklenti oluşturdum.jQuery

Sadece metnin kendisinin değil, metin girişinin içindeki metnin kendiliğinden kaybolması mümkün mü? Tüm girişimler, metin alanının kendisinin solması ve sonunda öğeyi görüntüden gizlemesiyle sonuçlanır gibi görünmektedir.

Varsayılan değeri içeren ve metin girişine kesinlikle yerleştirerek, kullanıcının bir metni girip girmediğine bağlı olarak gizleyerek ve göstererek bir çözüm kullanarak geldim. Varsa, çok basit bir yaklaşımı tercih ederim.

Düzenleme

jQuery jQuery UI jQuery için bir eklenti olarak kullanılabilir ya da işlevini animasyon kullanarak, (odaklama ve alan bulanık üzerine girişinin rengi olmaya metin rengi canlandırabilirsiniz aşağıda belirtildiği gibi). İşte nasıl olduğunu bilmek istediğiniz durumda kullandığınız kod.

obj.bind("focus", function() { 
    if ($(this).val() == oldValue) { 
     $(this).animate({ color: '#E8DFCC' }, 1000).val(''); 
    } 
}); 

obj.bind("blur", function() { 
    if ($(this).val().length <= 3) { 
     $(this).animate({ color: '#56361E' }, 600).val(oldValue); 
    } 
}); 
+0

Burada en iyi çapraz tarayıcı çözümünü zaten çözdünüz, üstte yer alan bir öğe, her yerde çalışırken geliştirebileceğinizden emin değilsiniz. –

cevap

6

Sadece hızlı düşünce, sen arka plan maç için metin kutusuna metnin rengini değiştirmek için animasyon yöntemi kullanılarak denediniz mi? Daha sonra animasyon tamamlandığında içeriği temizleyebilirsiniz.

Onun bir düşüncesi. Animasyon malzemelerini kullandığımdan beri bir süre geçti, ama eğer ilgilenirseniz muhtemelen bir kod örneğini çalabilirim.

+0

Öneri için çok teşekkür ederim. Bazı animasyon kodlarını yazmam uygun olmalı, bunu denemek için kullanmasa da yeterince tanıyorum. Nasıl gittiğimi rapor edeceğim, ama işe yarayacağını düşünüyorum. –

+0

Basit, ama zarif bir çözüm. jQuery, kutudan renk animasyonlarını desteklemez, ancak jQuery UI'niz varsa, renk animasyonları yapabilirsiniz, aksi halde indirebileceğiniz bir renk animasyon eklentisi de vardır. Sorumu, bir başkasının nasıl yapılacağını bilmek istemesi durumunda kullandığım kodu yansıtacak şekilde güncelledim. –

+0

Harika, test etme şansım olmadı (Çocuğumun çatlak düzeltmeleri arasındaki çatlaklar), bu yüzden işe yaradığıma memnun oldum (jQuery UI ile). – ckramer

4

İşte tam olarak bunun için kullanıyorum. ilk JavaScript'inizde için bu eklemek içerir: http://plugins.jquery.com/project/color

sonra bunu:

$('.search-input').focus(function(){ 
    if($(this).val() == 'Default Text'){ 
     $(this).animate({ 
      color: '#fff' 
      //your input background color. 
     }, 500, 'linear', function(){ 
      $(this).val('').css('color','#000'); 
      //this is done so that when you start typing, you see the text again :P 
     }); 
    } 
}).blur(function(){ 
    if($(this).val() == ''){ 
     $(this).val('Default Text').css('color','#fff'); 
     $(this).animate({ 
      color: '#000' 
     }, 500, 'linear'); 
    } 
}); 

bu ne yapacak giriş alanını boşaltmak sonra arka plan rengi metin solmaya ve olduğunu. ve bulanıklık üzerinde önce varsayılan metni gösterir, ardından orijinal rengine geri döndürür. Aslında alanını temizlemek için istemiyorsanız

bir yanılsama :)

bu bir çok kaldırabilirsiniz. ama fikri anladın. Buradaki anahtar iki şey. Renk eklentisini ve .animate() efektini kullanın.

0

Sadece bu problemle karşılaştım, çözümüm oldukça basit, sadece "value" özelliğini "'olarak değiştirin. Bu aslında metni hiçbir şeyle değiştirmeyecek.

$(selector).attr('value', ''); 
+1

'a işaret etmelidir. Bu, alandaki metni düzgün bir şekilde soldurmak yerine siler. $ (Selector) .val (""); 'ın daha kısa olduğunu unutmayın. – Aletheios

+0

Bu sortof çalışır: .fadeOut(). Val ("yeni değer"). FadeIn() ancak çirkin olan tüm girdi alanı kaybolur. –