JavaScript onKeyPress Olayı -Yardım?

İnvisible-1

Öğrenci
Katılım
14 Temmuz 2010
Mesajlar
22
Reaksiyon puanı
0
Puanları
0
Kod:
<html>
<script type="text/javascript">
function kontrol(e)
{
var a=e.keyCode;
var b=String.fromCharCode(a);
document.getElementById("yaz").innerHTML=b;
}
</script>

<body>
<form>
<input type="text" onkeyup="kontrol(event)"/><br />
Girilen karakter:
<div id="yaz" style="background-color:#FFFFCC;" ></div>
</form>
</body>
</html>
Arkadaşlar amacım klavyeden basılan tuşun algılanıp ekrana yazdırılması.
Sorunum ise onkeypress olayında çalıştıramıyorum onkeydown ve onkeyup olaylarında çalışıyor.Ancak birde karakter küçük büyük ayırt etmeden çıktıyı büyük harf olarak geri döndürüyor.Ve son olarak event anahtar sözcüğünü fonksiyonun parametresi olarak gönderince çalıştırabiliyorum.
Yardımlarınıza muhtacım :)
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
Bu kod işini görecektir:

PHP:
<html>
<script type="text/javascript">
function kontrol()
{
    document.getElementById("yaz").innerHTML=document.getElementById("textbox1").value;
}
</script>

<body>
<form>
<input id="textbox1" type="text" onKeyUp="kontrol()"/><br />
Girilen karakter:
<div id="yaz" style="background-color:#FFFFCC;" ></div>
</form>
</body>
</html>
 

İnvisible-1

Öğrenci
Katılım
14 Temmuz 2010
Mesajlar
22
Reaksiyon puanı
0
Puanları
0
Bu kod işini görecektir:

PHP:
<html>
<script type="text/javascript">
function kontrol()
{
    document.getElementById("yaz").innerHTML=document.getElementById("textbox1").value;
}
</script>

<body>
<form>
<input id="textbox1" type="text" onKeyUp="kontrol()"/><br />
Girilen karakter:
<div id="yaz" style="background-color:#FFFFCC;" ></div>
</form>
</body>
</html>
:D görüntüde evet fakat benim amacım klavyeden girilen karakterin unicode değerini çevirip bu işlemi yapmak.
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
O zaman büyük-küçük harf sorunu çıkıyor. Anlamadığım taraf event nesnesi keyCode değerini verirken büyük harfin karşılığını veriyor.

Yani diyelim ki a harfine bastık. keyCode ile 97 değerini döndürmesi gerekirken 65 değerini gönderiyor. 65 de ascii de A harfine denk geliyor.
 

İnvisible-1

Öğrenci
Katılım
14 Temmuz 2010
Mesajlar
22
Reaksiyon puanı
0
Puanları
0
evet bende denedim onu.peki event anahtar sözcüğünü parametre olarak göndermeden çalıştırabildinmi?

"event.keyCode;" şeklinde yani.

---------- Post added at 20:56 ---------- Previous post was at 20:43 ----------

Kod:
<html>
<script type="text/javascript">
function kontrol()
{
var a=event.keyCode;
var b=String.fromCharCode(a);
document.getElementById("yaz").innerHTML=b;
}
</script>

<body>
<form>
<input type="text" onkeypress="kontrol()"/><br />
Girilen karakter:
<div id="yaz" style="background-color:#FFFFCC;" ></div>
</form>
</body>
</html>
Bütün sorun firefoxdaymış yaaa :S 2 saattir kafayı yedim.Internet Explorerla denedim.Üstteki kodla tam istediğim şekilde çalıştı.Neden böyle yaptı firefox acaba :confused1:
Bu arada küçük büyük harf ayırımı sadece onkeypress de çalışıyor bu onun özelliğiymiş.onkeyup ve onkeydown da küçük büyük ayrımı yok.
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
Evet parametre olarak gönderilmediği zaman çalışmıyor. Ayrıca şu linkteki kaynağa göre event objesi IE harici tarayıcılarda uppercase yani büyük harf gönderiyormuş. O yüzden keyCode yerine charCode kullanılmasını tavsiye ediyorlar. Şu kodla da çalışıyor zaten sistem:

Kaynak: http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml

PHP:
<html>
<script type="text/javascript">
function kontrol(e)
{
    document.getElementById("yaz").innerHTML= String.fromCharCode(e.charCode);

}
</script>

<body>
<form>
<input id="textbox1" type="text" onKeyPress="kontrol(event)"/><br />
Girilen karakter:
<div id="yaz" style="background-color:#FFFFCC;" ></div>
</form>
</body>
</html>
 
Üst