Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] wartosc input-a
kicaj
post
Post #1





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


Napisalem cos takiego (opis w komentarzach):
Kod
$('#right-search').focus(function() {
    // domyslanie ustawiona jest wartosc dla input-a (value="szukaj...")
    // podczas klikniecia, czyscimy jego wartosc
        $(this).attr('value', '');
        if($(this).blur(function() {
            // ustawiamy wartosc po opuszczeniu input-a
            $(this).attr('value', 'szukaj...');
        }));
    });

Jesli klikam w input-a to czysci jego domyslna wartosc

Pytanie: Jesli po kliknieciu w intput-a, i nic nie wpisaniu, a nastepnie opuszczenie jego spowoduje wpisanie domyslnej wartosci "szukaj...", jezeli jednak cos wpiszemy i opuscimy to wstawia sie ta wartosc, a powinna zostac nowo wpisana, wiec jak to zrobic?

if(opuszczamy.pusty) : ustaw domyslny tekst ? pozostaw wpisany tekst...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Rafal Filipek
post
Post #2





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

Ostrzeżenie: (0%)
-----


wracając jeszcze do pierwszego problemu:
1) ustawiając wartość pola input należy korzystać z $('input').val() - jest szybsze
2) definiowanie ewentów w eventach nie jest dobrym pomyslem bo przykładowo:
Kod
<input type="text" id="search" title="Szukaj..." />
<span id="log"></span>
<script>
$('#search').focus(function(){
  $(this).blur(function(){
    $('#log').html($('#log').html()+'1<br />');
  });
});
</script>

wywolaj focus i blur pare razy i zobacz jakie ilosci jedynek bedzie ci zwracal - coraz wiecej!
3) sam kod który napisałeś można troche skompresować korzystając ze smaczków js i jquery
Kod
$('#search').val($('#search').attr('title')).bind('focus blur', function(e){
  var $this = $(this), val = $this.val(), title = $this.attr('title');
  $this.val(e.type=='focus' ? (val==title ? '' : val) : (val=='' ? title : val))
});

co do pytania 2. jezeli chcesz wprowadzic wiecej modyfikacji pola niz tylko kolor ( np. obramowanie, czcionka itp ) to lepiej uzyc dodawania i usuwania z elementu klass css ( addClass i removeClass ). Natomiast to o czym piszesz.
Kod
$('#search').focus(function(){$(this).css('color','#990000')})
            .blur(function(){$(this).css('color', $(this).attr('default-color'))})
            .attr('default-color',$('#search').css('color'));

i powinno smigac. do kazdego elementu mozesz dodawac wlasne atrybuty, ktrore przydaja sie wlasnie np. w takich sytuacjach.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 22:12