PDA

View Full Version : سوال: مشکل با event.keyCode



Mostafa_Sabeti
چهارشنبه 22 مهر 1388, 21:12 عصر
اگه تو جاوااسکریپت به event.keyCode مقدار بدهیم فقط توی اکسپلورر مورد قبوله.
برای اینکه بشود کراکتر وارد شده در تکست باکس را با کراکتری دیگر جایگزین کنیم چه راهی بغیر از مقدار دهی به event.keyCode پیشنهاد میدهید؟

محمدامین شریفی
شنبه 25 مهر 1388, 14:42 عصر
اگه تو جاوااسکریپت به event.keyCode مقدار بدهیم فقط توی اکسپلورر مورد قبوله.
برای اینکه بشود کراکتر وارد شده در تکست باکس را با کراکتری دیگر جایگزین کنیم چه راهی بغیر از مقدار دهی به event.keyCode پیشنهاد میدهید؟
این نمونه کد برای جایگزین کردن حروف می باشد[که می توانید با کد ascii و یا حر کدی دیگری حروف را جایگزین کنید] که در فایرفاکس به دلیل فرق داشتن شروع آرایه با IE و همچنین پس از وارد کردن حروف زیاد قاطی میکند،دوستان اگر می تونند کاملش کنند

<html>
<head>
<title>جایگزین کردن حروف</title>
<script type="text/javascript">
</script>
<script type="text/javascript">
function validate(fName) {
var str = fName;
switch(fName.charAt(str.length - 1))
{
case "a":

document.getElementById("cng").value = fName.replace(str.charAt(str.length - 1), "97");
break;
case "b":

document.getElementById("cng").value = fName.replace(str.charAt(str.length - 1), "98");
break;

default:

}
}
</script>
</head>
<body>
<input type="text" id="cng" onkeydown="validate(this.value);" />
</body>
</html>

Mostafa_Sabeti
شنبه 07 آذر 1388, 08:26 صبح
خیلی ممنون از جوابتون.

یک مساله؟؟؟
حالا چطور میشه موقعیت کرسر رو توی جعبه متن بدست اورد؟ منظور اینه که چطوری میشه با وارد شدن کراکتر در وسط متن داخل جعبه متن فقط همون کراکتر را تغییر داد.

محمدامین شریفی
شنبه 07 آذر 1388, 11:49 صبح
خیلی ممنون از جوابتون.

یک مساله؟؟؟
حالا چطور میشه موقعیت کرسر رو توی جعبه متن بدست اورد؟ منظور اینه که چطوری میشه با وارد شدن کراکتر در وسط متن داخل جعبه متن فقط همون کراکتر را تغییر داد.
2 تا آرایه به نام old و new بگیرید و با جستجو کردن در آنها،تغییر در textbox را پیدا کنید.
برای چه منظور می خواهید اینکار را انجام دهید؟اگر می خواهید صفحه ای مانند google advanced search را پیدا سازی کنید با ابزاری مانند firebug میتونید trace کنید،ببینید که گوگل چگونه اینکار را کرده است(دوستان از این موضوع اطلاع دارند؟)

Mostafa_Sabeti
یک شنبه 15 آذر 1388, 06:50 صبح
ببینید کدی که شما در پست دوم نوشته اید فقط یک کراکتر رو به آخر جعبه متن اضافه میکنه.

fName.replace(str.charAt(str.length - 1), "97")
من میخواهم بجای
str.length - 1یک چیزه دیگه باشه. منظورم جایی که کرسر داخل جعبه متن هست چون ممکنه طرف وسط جعبه متن رو ویرایش کنه.

Exception
یک شنبه 15 آذر 1388, 14:47 عصر
اگر حوصله داری کد بقیه رو بخونی، من یه کد نوشته بودم برای فارسی کردن صفحه کلید که دقیقا این کاری که شما خواستید رو انجام میده: http://hasheminezhad.com/kblayout
قسمت که شما لازم دارین رو هم قبلا کامنت گذاشته بودم و مشخصه که برای IE و FF و بقیه چطور کار میکنه