Javascript Yardım
-
Arkadaşlar şöyle bir sıkıntım var bir adet textboxum var ve içine girilen her 11. karakterden sonra virgül koydurmam lazım. Bu fonksiyonu de onKeyUp da çağırmam gerekiyor. Bu konuda bana yardımcı olabilecek var mı acaba.
01234567890,01234567890,01234567890, gibi
Edit: Okta da görüldüğü gibi fonksiyonda mod işlemi yaptığımdan 11 virgülden sonra bir virgül daha atıyor.
-
<script>
function virgulkoy(obj){
if (obj.value.length%11==0){
obj.value=obj.value+",";
}
}
</script>
<input type="textbox" onkeydown="virgulkoy(this);">ben böyle yaptım hocam hiç virgül 2 kere basmadı senin kodu bi yazabilir misin.
sokoban tarafından 18/Ara/13 13:55 tarihinde düzenlenmiştir -
var sayilarstr=""; for(int i =0;i<dizi.lenght;i++) { sayilarstr+= dizi[i] + ","; //sayilarstr = sayilarstr + diziler[i] demek }
hocam bunun sebebi şu. (js kodu yazmıyorum)
şimdi bunu ekrana bastığımda mesela 10,20,30,40, gibi bi şey çıkacaktır çünkü en sonda da virgül var. bunu çözmenin en kolay yolu son karakteri silmektir
sayilarstr= sayilarstr.Remove(sayilarstr.lenght-1); //sayılarstr nin karakter sayısından 1 eksiğinden itibaren başlayarak sil yani bu da son karkter virgül oluyor.. bu şekilde çözebilirsin..
ya da diziyi bir eksik döndererek dizi dışında ekleme yaptırırsın şöyle o da
var sayilarstr=""; for(int i =0;i<dizi.lenght -1 ;i++) //dizinin son elemanına girmeyecek { sayilarstr+= dizi[i] + ","; } sayilarstr += dizi[dizi.lenght-1];
diyerek son elemana virgül attırmıyorsun.. umarım sorunu düzgün anlamışımdır
-
sokoban bunu yazdı
// <!C
function virgulkoy(obj){
if (obj.value.length%11==0){
obj.value=obj.value+",";
}
}
// ]]>
< ="virgulkoy;" ="text" />ben böyle yaptım hocam hiç virgül 2 kere basmadı senin kodu bi yazabilir misin.
hocam benim kod da başta buna yakındı 11 adetten fazla 11li karakter gurubu girdiğimizde virgllerin sayısı da 11,i buluyor ve fazladan 1 virgül daha koyuyuor.
Bir de 11 haneler barkod okuyucudan gelen 11 haneli bir barkod ve hepsi toplu olarak Crtl+V şeklinde geliyor. Elle girş de yapabiliyorlar ama
benim şuanki fonksiyonum:
function(){
var dizilength=document.getElementById('InputText5').value.length;
var control=dizilength%11;
var control2=parseInt(dizilength/11);
control2=control2-1;
control2=control2%11;
if(control==control2)
{
document.getElementById('InputText5').value+=",";
}
}
Blackfire tarafından 18/Ara/13 14:12 tarihinde düzenlenmiştir -
Bi up olsun
-
array vs. bişiler gördüm konuya bakmadım tam olarak ama 11'den sonra tekrar bir virgün koymasının ve 11 karakterli olarak ayırması olayı görünce aklıma artık karakter geldi.
yani 11 rakam , 11 rakam , 11 rakam, yaptıkça ve bu bir string ise mod alıyorsan 11. virgülden sonra ek olarak eklediğin o virgüller 11 karakterlik yer kaplamış olacak bunu dikkate aldın mı?
-
almaya çalıştım ama sürekli biyerlerde farklı hatalar ortaya çıkmaya başladı her karakter girişindefonksiyonun yeniden çağrılmasından dolayı artık başka bi yöntem denemeyi düşünüyom