• 10-03-2013, 21:26:51
    #1
    arkadaşlar hiç jquery bilmediğim için yapamadım. internette bulduğum örnekler genellikle karakter saymak ve sınırlandırmakla alakalı sorum şu:

    textareya yazılan karakterler sayılacak ve her yüzde veya 150. karakterde diğer bir bölüm 1 artacak (örnekteki adet) 780'de ise veri girişini kapatacak (uyarı olmaksızın).

    örnek:

    yazılan karakter : 193 adet:2

    yapabilecek arkadaş varmı acaba.
  • 11-03-2013, 15:51:39
    #2
    jQuery ..:

    $(function() {
        // textarea alanını seç
        var txtAlani = $('textarea');
    
        // adet nerede gösterilecek?
        var adet = $('label.adet');
    
        // kaç tanede bir artacak?
        var kac_tanede_bir = 5;
    
        // klavyeden her harf tuşlandığında ..
        txtAlani.keyup(function() {
           // toplam karakteri sayıp kaç parça olduğunu bul. 1 ekle (192 de 2 olması için 1 den başlıyoruz)
           adet.html(parseInt(txtAlani.val().length/kac_tanede_bir )+1);
        });
    });


    HTML ..:

    <textarea style="width: 250px; height: 100px;"></textarea>
    <br />
    Adet : <label class="adet">1</label>

    DEMO ..:

    http://jsfiddle.net/gm7M9/
  • 11-03-2013, 17:21:21
    #3
    çok teşekkürler.

    peki en fazla 700 karakter olacak şekilde nasıl sınırlandırabliriz.
  • 11-03-2013, 17:26:07
    #4
    aşağıdaki satırı adet.html( .. bunun üstüne eklemelisin :

    if (txtAlani.val().length > 700) return false;
  • 11-03-2013, 17:39:25
    #5
    adet saymayı bıraktı lakin veri girişi hala yapılabiliyor. veri girişini nasıl kısıtlarız. örneğin 700. karaaktere gelinince klavyede tuşa basılsa bile yazı textareaya yazılmasın
  • 11-03-2013, 18:02:45
    #6
    .keyup

    yerine

    .keydown

    yaparsanız sorun çözülecektir. çünkü keyup tuş basıldıktan sonra (tabiri caizse parmak tuştan kalktıktan sonra) yani elektronik anlamda tuş işlevini tamamlayınca işleme giriyor. keydown ise tuş henüz ekrana basılmadan işleve giriyor. karakter kontrolünü de bu anda yapmak, yeni tuş girilmeden mevcut harfleri saymak mantıklı olacaktır.
  • 11-03-2013, 21:39:18
    #7
    şimdide şöyle bir durum var. karakterleri sınırlandırıyor lakin klavyeden herhangi bir tuşa basmamada müsade etmiyor örneğin silme tuşuna basmak gibi
  • 11-03-2013, 23:49:29
    #8
    orhanbyr adlı üyeden alıntı: mesajı görüntüle
    şimdide şöyle bir durum var. karakterleri sınırlandırıyor lakin klavyeden herhangi bir tuşa basmamada müsade etmiyor örneğin silme tuşuna basmak gibi
    şöyle modifiye edelim:

    txtAlani.keydown(function(e) {
    
    if (txtAlani.val().length > 700 && e.keycode != 8 && e.keycode != 46) return false;