PDA

Tam Sürümünü Görmek İçin : Metin Kutusuna Girileni Formatlama


yumert
19/11/2003, 15:51
Arkadaşlar acil yardıma ihtiyacım var. Metin kutusuna sayısal değer girdikçe girilen değeri her 3 basamakta virgül atarak
ayırma işlemini aynı sayfada tuşa basıldıkça nasıl yapabilirim.
Yani 1256789 diye bir şey girerken bunu 1,256,789 diye ayıracak ve başka bir sayfaya HTTP_POST_VARS ile gönderdiğimde bu formatta gözükecek..


HunTER
19/11/2003, 16:02
Bu daha cok javascript'i ılgılendıren bı sorun.. Cunku sen bu ısı "aynı sayfada tuşa basıldıkça" yapmak ıstıyorsun..

Oyuzden bu tıp soruları Web Tasarım bolumunde sorman daha ıyı.. Ben sımdılık senın yerıne bu konuyu o bolume tasıdım..

yumert
19/11/2003, 17:57
Ertuğrul arkadaş çok teşekkürler..Artık bu bölümüde sık kullanırım..

fixman
21/11/2003, 11:38
Yanıt az sonra... Makina değiştirince...

fixman
21/11/2003, 12:35
<html>
<head>
<title>FORMAT</title>
<script language="JavaScript1.2">
<!--
function formatla(tutucu){
deger = tutucu.value.replace(/,/g,'');
uzunluk = deger.length;
if(!(uzunluk % 3) && (parseInt(deger) == deger)){
tutucu.value = '';
for(i = 0; i < uzunluk; i += 3)
tutucu.value += deger.substr(i,3) + ',';
}
}
-->
</script>
</head>

<body>
<form name="formatli">
<input name="sayi" type="text"
onKeyPress="formatla(this);">
</form>
</body>
</html>

fixman
21/11/2003, 12:37
Biraz daha geliştirmemiz gerekiyor... Bekleyin...

yumert
21/11/2003, 17:53
Teşekkürler arkadaşım verdiğim cevap için.Yanlız burda bir mantık hatası oluyor.Atıyorum.1234567 diye bir değer girdiğimde bunu ben 1,234,567 şeklinde yazmasını istiyorum.
Yani senin gönderdiğin kodda böyle bir değeri 123,456,7 şeklinde yazıyor.Burada rakam sayısını kontrol ettirip ona göre bir şeyler yapmamız gerekiyor.

fixman
28/11/2003, 15:26
Tam senin istediğin gibi bişe yaptım... Çok güzel oldu... Ama araya bayram girdi ve ben bilgisayarımdan çok çoookk uzaktayım... Tatilden sonra gönderirim kodları... Umarım geç kalmadık!

Sevgiler...

fixman
28/11/2003, 15:28
Küçük bir ipucu : Girilen değeri ters çevirip üçer üçer böldüm; sonra elde edilen yeni değeri yine ters çevirdim... Böylece bahsettiğin mantık hatasını çözmüş olduk...

Bekleyiniz...

fixman
13/06/2004, 17:52
Yaf... Ben bu fi tarihinden kalma konuyu aslında hatırlamıyorum desem bana inanır mısınız? Sağolsun bir arkadaş e-posta gönderip "Nerede kardeşim bahsettiğin script, araya bayram falan girdi diyip unutturuyorsun millete" diye bi güsel paylamış beni... Onun sayesinde hatırladım yane... O arkadaşa diyorum ki "Affet... ben şahane bi script yazmıştım zamanında, ama aldığım istihbarata göre federaller o scripte el koymuş..."

Alın size 2004 model gıcır gıcır bi JavaScript :


<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-9">
<TITLE>FX THOUSAND EDIT</TITLE>
<STYLE TYPE="TEXT/CSS">
<!--

body {color: black; background-color: white; font-family: Verdana; font-size: 12px}

-->
</STYLE>
<SCRIPT LANGUAGE="JavaScript1.2">
<!--

/*
fxcode (free x code)
Coded By Erwin C. York (fixman) 24.11.2003
E-Mail : erwin_commett_york~yahoo.com

Bu script tamamen benim kıvrak zekamın ürünüdür, ama yine de...
Dilediğiniz gibi esinlenebilir, değiştirebilir ve yeniden dağıtabilirsiniz.

*/


// c -> key "c"ode, b -> boolean, t -> text, e -> edit, i -> integer

DIVISION_BRACKET = 3;

key_set = {
BACKSPACE : 8,
SHIFT_KEY : 16,
END_KEY : 35,
HOME_KEY : 36,
LEFT_ARROW : 37,
RIGHT_ARROW : 39,
DELETE_KEY : 46,
INS_KEY : 96
};

function keyControl(){
c = document.all ? event.keyCode : document.captureEvents(Event.KEYPRESS);
for(i in key_set) if (b = (c == key_set[i])) break;
if((/[\WA-Zojmk]/.test(String.fromCharCode(c)) || event.shiftKey) && !b) event.returnValue = false;

// returnValue ozelliğini IE dışındaki tarayıcılar desteklemiyordu sanırım...
// Event nesnesinin ABORT değeri ile bu iş kotarılabilir mi acep?
}

function format(edit){
if((c != key_set.LEFT_ARROW) &&
(c != key_set.RIGHT_ARROW) &&
(c != key_set.HOME_KEY)){
t = '';
e = edit.value.replace(/,/g, '');
if(e.length > DIVISION_BRACKET){
if(!(i = e.length % DIVISION_BRACKET)) i = DIVISION_BRACKET;
e = e.replace(t = e.substr(0, i), '');
for(i = 0; i < e.length; i += DIVISION_BRACKET)
t += ',' + e.substr(i, DIVISION_BRACKET);
edit.value = t;
} else edit.value = e;
}
}

-->
</SCRIPT>
</HEAD>

<BODY>
<P><B>FX THOUSAND EDIT</B></P>
<INPUT NAME="ThEdit" TYPE="text" SIZE="28" ONKEYDOWN="keyControl()" ONKEYUP="format(this)">
</BODY>
</HTML>

eslem1
09/07/2004, 18:59
teşekkürler fixman

ne zamandır arıyorudum bu meseleyi