elyas_delshadnbe
دوشنبه 02 تیر 1393, 10: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;
}
کد من هم اینه
اینو توی تعریف 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;
}