PDA

View Full Version : سوال: صفحه کلید فارسی



elyas_delshadnbe
دوشنبه 02 تیر 1393, 09:33 صبح
با سلام.من یه سری فرم دارم که توی بعضی از فیلدها از تابعی استفاده کردم که فقط از صفحه کلید کاراکتر فارسی میگیره. ینی چه صفحه کلید انگلیسی باشه چه فارسی مقادیر فقط به صورت فارسی دریافت می شن. حالا یه مشکل دارم اونم این که شما وقتی یه مقدار رو تو این فیلدا وارد میکنین و از فیلد خارج میشین دوباره که به همون فیلد برگردین با انتخاب کل محتوای اون فیلد و تایپ مجدد مقادیر قبلی پاک نمیشن و فقط باید از delete یا backspace استفاده کنی تا مقاذیر قبلی پاک بشه. کسی میتونه کمک کنه تا این مشکل حل بشه؟ اصلا قابل حل هست؟
کد من هم اینه
اینو توی تعریف textbox میذارم



onkeypress="return FarsiType(this,event)"

و این همه تابع farsitype هستش





function FarsiType(myField,e)
{
var farsiLanguage = true;
e = (e) ? e : event;
var charCode = (e.charCode) ? e.charCode : ((e.which) ? e.which : e.keyCode);
var key = charCode;
var FarsiType =
{
farsiKey : [
32 , 33 , 34 , 35 , 36 , 37 , 1548 , 1711 ,
41 , 40 , 215 , 43 , 1608 , 45 , 46 , 47 ,
48 , 49 , 50 , 51 , 52 , 53 , 54 , 55 ,
56 , 57 , 58 , 1705 , 44 , 61 , 46 , 1567 ,
64 , 1616 , 1584 , 125 , 1609 , 1615 , 1609 , 1604 ,
1570 , 247 , 1600 , 1548 , 47 , 8217 , 1583 , 215 ,
1563 , 1614 , 1569 , 1613 , 1601 , 8216 , 123 , 1611 ,
1618 , 1573 , 126 , 1580 , 1688 , 1670 , 94 , 95 ,
1662 , 1588 , 1584 , 1586 , 1740 , 1579 , 1576 , 1604 ,
1575 , 1607 , 1578 , 1606 , 1605 , 1574 , 1583 , 1582 ,
1581 , 1590 , 1602 , 1587 , 1601 , 1593 , 1585 , 1589 ,
1591 , 1594 , 1592 , 60 , 124 , 62 , 1617
]
}
try
{
if(farsiLanguage)
{
if (key != 46 && key < 1000 && key != 32 && key != 8 && key != 13 && key != 9 && key != 192)
{
key = FarsiType.farsiKey[key-32];
myField.value+=String.fromCharCode(key);
return false;
}
}
return true;
}
catch(error)
{alert(error);}
return true;
}

elyas_delshadnbe
دوشنبه 02 تیر 1393, 11:06 صبح
هیشکی نیس ی نظر بده لااقل. یه زمانی برنامه نویس خیلی بهتر بود