Jquery karakterden sonra boşluk bırakma

okantastan

Öğrenci
Katılım
4 Mayıs 2013
Mesajlar
31
Reaksiyon puanı
0
Puanları
6
Konum
Muğla/Bodrum
Merhaba arkadaşlar iyi forumlar hayırlı günler
Jquery ile bir keyup kontrolü yapıyorum,text kutusuna "%" işareti yazıldığı zaman otomatik olarak bir boşluk bırakmasını istiyorum ama bir türlü olmuyor.ardımcı olur musunuz?
Kodlarım aşağıdaki şekilde
Kod:
$(document).ready(function(){
 	$("#metin").live("keyup", function() {
		var metin = $("#metin").val();
		if (metin.indexOf('%') >=0){
			var metin = $("#metin").val().replace("%", "% ").toLowerCase();
			$("#metin").val(metin);
		}else{}
 });	
});
Her tuşa basıldığında boşluk bırakıyor.
 

MaRZoCHi

Asistan
Katılım
10 Mayıs 2010
Mesajlar
120
Reaksiyon puanı
4
Puanları
18
Kod:
$("#metin").live("keyup", function () {
    var metin = $("#metin").val();
    if (metin.indexOf('%') >= 0) {
        var metin = $("#metin").val().replace("%", " ").toLowerCase();
        $("#metin").val(metin);
    }
});
 

okantastan

Öğrenci
Katılım
4 Mayıs 2013
Mesajlar
31
Reaksiyon puanı
0
Puanları
6
Konum
Muğla/Bodrum
Tuşa her basıldığında boşluk bırakıyor ben sadece "%" işaretinden sonra bir boşluk bırakmak istiyorum.
 

MaRZoCHi

Asistan
Katılım
10 Mayıs 2010
Mesajlar
120
Reaksiyon puanı
4
Puanları
18
Son halinde A-Z, a-z ve 0-9 karakterlerinden sonra % varsa boşluk veriyor.Şöyle değiştirilebilir kullanımınıza göre.

% sonra boşluk yoksa.. fakat tam olarak kodunu bilmiyorum Regex bilenler bakarsa..
 

bortu3

Asistan
Katılım
7 Ekim 2010
Mesajlar
114
Reaksiyon puanı
0
Puanları
0
Regex'e gerek yok sadece javascriptin replace fonksiyonu biraz sıkıntılı sadece ilk gördüğü işlemi alıp bitiriyor fonksiyonu onun için replaceAll fonksiyonu araştırıp buldum internetten düzelttim kodu tam istediğin gibi olmuştur heralde.

http://jsfiddle.net/YfDUp/1/

olmamış ise söyle düzelteyim.
 

okantastan

Öğrenci
Katılım
4 Mayıs 2013
Mesajlar
31
Reaksiyon puanı
0
Puanları
6
Konum
Muğla/Bodrum
Hocam teşekkür ederim ama aynı sorun devam ediyor her tuşa basıldığında "%" den sonra boşluk bırakıyor
 

aslanpayi

Doçent
Katılım
12 Ağustos 2009
Mesajlar
523
Reaksiyon puanı
1
Puanları
0
Böyle bir şey sana fikir verebilir diye düşünüyorum.

Kod:
$(document).keypress(function (event) {
	var [COLOR=#333333]metin[/COLOR]= String.fromCharCode(event.which);
	
        if ([COLOR=#333333]metin [/COLOR]== "%") {


        	//replace ve diğer işlemler...
        }
});
 

okantastan

Öğrenci
Katılım
4 Mayıs 2013
Mesajlar
31
Reaksiyon puanı
0
Puanları
6
Konum
Muğla/Bodrum
aslanpayı hocam replace ve diğer işlemler yazmışsınız benim öğrenmek istediğimde tam o kısım.sadece gelen harfi veya karakteri çevirmesi. vevirmesini istediğim karakter % işareti gelince sadece son gelen değerin sonuna 1 tane boşluk koyması.replace işlemini denedim fakat inputtaki tüm % işaretlerinin sonuna sürekli boşluk atıyor
 

aslanpayi

Doçent
Katılım
12 Ağustos 2009
Mesajlar
523
Reaksiyon puanı
1
Puanları
0
Kod:
var metin = $("#metin").val().replace("%", "% ").toLowerCase();

Böyle yaparak metnin içindeki tüm % işaretlerini değiştirirsin. Replace metodunun amacı budur zaten.

Kod:
var pos = x.lastIndexOf('%');
   var metin x.substring(0, pos) + ' ' + x.substring(pos + 1);

Sanırım böyle bir kod işine yarayacaktır. Başka yöntemler de vardır tabi .slice() metodunu kullanmak gibi... Sana en uygun yöntemi bunları araştırarak bulabilirsin.
 

okantastan

Öğrenci
Katılım
4 Mayıs 2013
Mesajlar
31
Reaksiyon puanı
0
Puanları
6
Konum
Muğla/Bodrum
Aslanpayı ben farklı bir yolla çözdüm aslında basitmiş teşekkür ederim hepinize...
Kod:
$(document).ready(function(){
   $('#metin').keypress(function (event) {
	var Karakter = String.fromCharCode(event.which);
	if (Karakter == "%"){
        $("#metin").val($("#metin").val()+"% ");
        return false;
        }
    });
});
return false olması gerekiyor yoksa 2 kere döndürüyor.
 
Üst