jQuery ile inputa girilen bir yazıyı anlık temizleme

Belirlediğimiz bir form içinde yazılan yazıyı belli bir formatta isteyebiliriz. Örneğin, türkçe karakter olmasın, büyük harf olmasın, boşluk olmasın gibi isteklerimiz olabilir. Ayrıca bunları anlık olarak değiştirebiliriz. Bu işlemi jquery'nin keyup ve keydown fonksiyonlarıyla yapabiliriz. Şuradan bu fonksiyonlarla ilgili makaleye erişebilirsiniz. 

Örnek

$(document).ready(function(){
    $('#mesaj').keyup(function(){
        var deger=$('#mesaj').val();
        mesajTemizle(deger);
    });
    $('#mesaj').keydown(function(){
        var deger=$('#mesaj').val();
        mesajTemizle(deger);
    });
});

Burada  keyup ve keydown fonksiyonlarıyla id si mesaj olan inputumuzun değerini anlık olarak alıp mesajTemizle() fonksiyonuna gönderiyoruz. mesajTemizle() fonksiyonumuz şu şekilde çalışmaktadır:

function mesajTemizle(deger){
    var karakterler = {Ç:'c',Ö:'o',Ş:'s',İ:'i',I:'i',Ü:'u',Ğ:'g',ç:'c',ö:'o',ş:'s',ı:'i',ü:'u',ğ:'g'};

    var stringtoarray = deger.split('');

    for( var i=0; i<stringtoarray.length; i++ ) {
        stringtoarray[i] = karakterler[ stringtoarray[i] ] || stringtoarray[i];
    }

    var arraytostring = stringtoarray.join('');
    var temiz_mesaj = arraytostring.replace(" ","-").replace("--","-").toLowerCase();

    $('#mesaj').val(temiz_mesaj);
}

girdiğimiz mesajı bütün olarak alıyoruz ve split fonksiyonuyla bir diziye dönüştürüyoruz. Dizinin elemanları karakterlerden oluşmaktadır. Detayına şuradan bakabilirsiniz. Daha sonra for döngüsüyle teker teker karakterleri karşılaştırma yaparak yeni değerini almasını sağlıyoruz. Bu işlemden sonra bu diziyi join() metoduyla yeni bir string haline getiriyoruz. oluşturduğumuz yeni mesajı en altta yer alan kodla inputumuza yazdırıyoruz.

 

ETİKETLER
keydownkeyupsplitjoinjqueryanlık temizlemeinput
Öncekİ Yazı

Javascript split() ve join() metodları

Sonrakİ Yazı

Görüntü işlemede logaritmik dönüşüm(logarithmic transformation)

İlgili Yazılar