• 08-07-2014, 12:55:28
    #1
    Üyeliği durduruldu
        $("button#yazarol").click( function() {
            if ( $("#ykullaniciadi").val() == "" )
                 $("div#kadivalid").addClass( "form-group has-error" ),
                 $("div#girisuyarisi").html("Kullanıcı Adı ve Parola boş bırakılamaz!");
                } );
    Arkadaşlar burada inputa bişey yazılmamışsa addclass ile inputa kırmızı uyarı stili verecek css classlarını atıyorum.

    Fakat kullanıcı tekrar inputa tıklayıp bişeyler yazdığında bu css classının silinmesini istiyorum.

    nasıl yapabilirim?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:55:28 -->-> Daha önceki mesaj 12:09:22 --

    neyse yine kendim sorup kendim cevapladım.
    keyupla halloluyor
        $("#ykullaniciadi").keyup(function (event) {
                 $("div#kadivalid").addClass( "form-group" ),
                 $("h6#kadiuyarisi").css({display:'none'},1000),
                 $("h6#kadiuyarisi").html("Kullanıcı Adı Alanı Boş Bırakılamaz!");
        });
  • 12-07-2014, 19:35:52
    #2
    Hasidluu adlı üyeden alıntı: mesajı görüntüle
        $("button#yazarol").click( function() {
            if ( $("#ykullaniciadi").val() == "" )
                 $("div#kadivalid").addClass( "form-group has-error" ),
                 $("div#girisuyarisi").html("Kullanıcı Adı ve Parola boş bırakılamaz!");
                } );
    Arkadaşlar burada inputa bişey yazılmamışsa addclass ile inputa kırmızı uyarı stili verecek css classlarını atıyorum.

    Fakat kullanıcı tekrar inputa tıklayıp bişeyler yazdığında bu css classının silinmesini istiyorum.

    nasıl yapabilirim?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:55:28 -->-> Daha önceki mesaj 12:09:22 --

    neyse yine kendim sorup kendim cevapladım.
    keyupla halloluyor
        $("#ykullaniciadi").keyup(function (event) {
                 $("div#kadivalid").addClass( "form-group" ),
                 $("h6#kadiuyarisi").css({display:'none'},1000),
                 $("h6#kadiuyarisi").html("Kullanıcı Adı Alanı Boş Bırakılamaz!");
        });
    Cevabı bulup yazmanız da çok güzel olmuş sizin gibi aynı sorunla karşılaşanlar için güzel bir davranış olmuş.

    Fakat daha Çok $("h6#kadiuyarisi").css({display:'none'},1000), Satırıyla Hallolmuş sorununuz Keyup la alakası olduğunu düşünmüyorum..

    1 saniye sonunda uyarı mesajının görünürlüğünü gzliye çeviriyor..
  • 12-07-2014, 19:46:30
    #3
    Üyeliği durduruldu
    ArMoR adlı üyeden alıntı: mesajı görüntüle
    Cevabı bulup yazmanız da çok güzel olmuş sizin gibi aynı sorunla karşılaşanlar için güzel bir davranış olmuş.

    Fakat daha Çok $("h6#kadiuyarisi").css({display:'none'},1000), Satırıyla Hallolmuş sorununuz Keyup la alakası olduğunu düşünmüyorum..

    1 saniye sonunda uyarı mesajının görünürlüğünü gzliye çeviriyor..
    Hocam tamam da tekrar yazı yazıldığını anlayıp uyarı mesajını gizliye çeviriyor.
    Tekrar yazı yazıldığını da keyup ile anlıyor.

    Oraya bir zaman atamamın sebebi çat diye uyarı mesajı silinmesin yazı yazılır yazılmaz. Yani görsellikle alakalı tamamen.

    Özet şu:
    -Önce kullanıcı hata mesajı alacak işlemi yapıyor.
    -Sonra hata mesajına uyarak yeniden formu yazmaya başlıyor.
    -Bu sırada forma yeniden birşeyler yazdığını keyupla anlıyoruz.
    -Bahsettiğiniz satırla da gizle emrini veriyoruz.


    Kısacası keyup olmasaydı kullanıcının tekrar inputu doldurduğunu nasıl anlayacaktık?
  • 12-07-2014, 19:50:19
    #4
    ArMoR adlı üyeden alıntı: mesajı görüntüle
    Cevabı bulup yazmanız da çok güzel olmuş sizin gibi aynı sorunla karşılaşanlar için güzel bir davranış olmuş.

    Fakat daha Çok $("h6#kadiuyarisi").css({display:'none'},1000), Satırıyla Hallolmuş sorununuz Keyup la alakası olduğunu düşünmüyorum..

    1 saniye sonunda uyarı mesajının görünürlüğünü gzliye çeviriyor..
    $("h6#kadiuyarisi").css({display:'none'},1000) satırını tetikleyen keyup event'i zaten.
  • 12-07-2014, 20:04:57
    #5
    İlk Kodda Bahsettiğiniz Satır Mevcut değildi..
    Amaç uyarı satırını Gizlemekse eğer ikinci kod bloğunda eklenen
    $("h6#kadiuyarisi").css({display:'none'},1000) Satırı Bu işi görüyor..

    Keyup eventine gelincede malumunuz bir giriş varmı bir tuştan çekilme varmı kontrol ediyor ..

    Bunu inputun change olayındada yapabilirdi,
    İnputun change olayına bahsettiğiniz satırları yazarsanız aynı işlemi görmez mi ??

    Eğer aynı işlemi yapıyorsa Olayı Yapan Keyup mı yoksa bahsettiğimiz display none satırımıdır ?

    Ben Çok fazla bu konuları bilen biri değilim Öğrenmek için soruyorum hocam..
  • 12-07-2014, 20:22:48
    #6
    Üyeliği durduruldu
    ArMoR adlı üyeden alıntı: mesajı görüntüle
    İlk Kodda Bahsettiğiniz Satır Mevcut değildi..
    Amaç uyarı satırını Gizlemekse eğer ikinci kod bloğunda eklenen
    $("h6#kadiuyarisi").css({display:'none'},1000) Satırı Bu işi görüyor..

    Keyup eventine gelincede malumunuz bir giriş varmı bir tuştan çekilme varmı kontrol ediyor ..

    Bunu inputun change olayındada yapabilirdi,
    İnputun change olayına bahsettiğiniz satırları yazarsanız aynı işlemi görmez mi ??

    Eğer aynı işlemi yapıyorsa Olayı Yapan Keyup mı yoksa bahsettiğimiz display none satırımıdır ?

    Ben Çok fazla bu konuları bilen biri değilim Öğrenmek için soruyorum hocam..
    Zaten ilk kodda değişiklik hiç yapmadım hemen altına sonraki kısmı ekledim. Sadece idler farklı sonradan karar verip değiştirdim.

    Şimdi sorduğum soruya göre işime yarayan şey keyup. Sence bir öğeye class atamayı ilk kodda bilirken işim bununla çözülüyorsa neden soru sorayım. Sorduğum soru kullanıcının tekrar yazı yazmaya başladığını nasıl anlarım? yani kullanıcının tekrar yazmaya başladığını denetleyen bir kodumuz varsa artık sonrasında istediğimiz görsel işlemi yapabiliriz.

    Ha keyup ile kullanıcının yazı yazdığı esnadan sonra
    $("h6#kadiuyarisi").css({display:'none'},1000)
    bu olmasaydı evet işe yaramayacaktı. Boşu boşuna kullanıcının tekrar yazıp yazmadığını denetlemiş olacaktık.

    Ama sorduğum soru nasıl yazıyı gizlerim değil, nasıl kullanıcının tekrar yazdığını anlarımdı.

    Elbet keyup dışında bir sürü yöntem vardır fakat araştırdığımda en basit ve genel geçer olanı buydu.

    Change mhange bilmiyorum vallahi bende yeni başladım jquerye ama yıllardır javascriptten korktuğum için kızıyorum kendime çok basit aslında. Şimdilik işime yarayacak kısımları sorup araştırıyorum.
    jQuerynin offical sitesinde doğru ingilizce ile aratırsan herşey çıkıyor.
  • 13-07-2014, 00:56:48
    #7
    ArMoR adlı üyeden alıntı: mesajı görüntüle
    İlk Kodda Bahsettiğiniz Satır Mevcut değildi..
    Amaç uyarı satırını Gizlemekse eğer ikinci kod bloğunda eklenen
    $("h6#kadiuyarisi").css({display:'none'},1000) Satırı Bu işi görüyor..

    Keyup eventine gelincede malumunuz bir giriş varmı bir tuştan çekilme varmı kontrol ediyor ..

    Bunu inputun change olayındada yapabilirdi,
    İnputun change olayına bahsettiğiniz satırları yazarsanız aynı işlemi görmez mi ??

    Eğer aynı işlemi yapıyorsa Olayı Yapan Keyup mı yoksa bahsettiğimiz display none satırımıdır ?

    Ben Çok fazla bu konuları bilen biri değilim Öğrenmek için soruyorum hocam..
    bilgilendirmek adına olayı açıklıyorum asıl işi yapan

    $("h6#kadiuyarisi").css({display:'none'},1000)

    satırıdır ama bu satırı durduk yerde çalıştıramazsın, kullanıcının hatayı görüp görmediğinden emin olmak gerekir bunuda anlamanın en kolay yolu eğer input'ta hata mesajı varsa kullanıcı input'i değiştirmek isteyecektir burdada arkadaş keyup event'ini devreye koymuş eğer input'a bir tuş girişi var ise yukarıda kodu çalıştırıyor yani keyup event'i yukarıda kodu tetikliyor.

    diğer konuya dönecek olursak bunu yapmanın birçok yolu vardır.

    fakat en mantıklısı bana göre keypress'dir. change ve keyup aslında tam olarak bu amaca hizmet etmiyor bana göre aralarındaki farkı anlatmak gerekirse.

    keyup:tuş'a basma işlemi bittiğinde devreye girer yani sen a tuşuna basılı tutarak sürekli a yazabilirsin ama hala keyup event'i devreye girmez çünkü hala tuşa basma işlemi devam etmektedir ne zaman parmağı a tuşundan çektin o zaman o zaman devreye girer.

    keypress:herhangi bir tuş girişi olduğunda devreye girer yani yukarıda örnek gibi a tuşuna basılı tuttun diyelim her giriş bu event'i tetikler yani a ya basılı tutarak 20 tane a girişi yapsan bile event 20 kere tetiklenir.

    change: bu event ise sadece blur olduğunda devreye girer. burada örnemiğizi biraz değiştirmek gerekir sen input'a istediğin kadar giriş yap bu event tetiklenmez istersen 20 kere a yaz sonra ali veli hüseyin yaz hala bu event' dediklenmez, ne zaman input'un dışındaki bir nesneye odaklandın o zaman tetiklenir(örn: input'un dışında bir nesneye tıklamak, başka bir nesneye focus olmak).

    özetle burada change kullanmak kullanıcının aklını karıştıracaktır çünkü adama giriş hatalı düzeltin diye hata verdin. adam ne kadar düzeltirse düzeltsin hata mesajı gitmeyecektir ( başka bir nesneye odaklanana kadar(focus)). o yüzden kullanıcı her girişinin hatalı olduğunu düşünecektir.

    keypress ve keyup arasında o kadar büyük bir fark yok yukarıda anlattığım gibi ama daha doğru kullanım bana göre keypress'dir.

    daha'da tiryaki davranmak gerekirse bu 3 event combine edilebilir.

    jQuery 1.7+ için

    $('#yazarol').on('keypress keyup change',function(){
                $("h6#kadiuyarisi").css({display:'none'},1000)
            })
    daha eski sürümler için

    $('#yazarol').bind('keypress keyup change',function(){
                $("h6#kadiuyarisi").css({display:'none'},1000)
            })
    dipnot: bu combine işlemi 3 ayrı listener atayacağı kullanıcı bilgisayarında ram'da kendine 3 ayrı pointer ayıracaktır buda performans kaybına neden olur ama yıl 2014 ne kadar önemsenir ayrı mevzu