View Full Version : تو input فقط فارسی تایپ کنید یا فقط عدد تایپ کنید.
olampiad
چهارشنبه 23 اردیبهشت 1394, 20:30 عصر
سلام و خسته نباشبد به دوستان عزیز
من فرم ثبت نامی دارم که تو بعضی از فیلد ها میخوام کاربر فقط فارسی بنویسه:
یعنی اگه زبان صفحه کلید هم en بود توی فیلد فارسی بنویسه.
آیا این کار شدنی هستش؟
آیا میشه تو بعضی از فیلد ها هم فقط خارجی بنویسه؟
من با چ تابعی میتونم این کار رو انجام بدم.
آیا واسه این کار تابعی سراغ دارید.
میشه ی توضیح مختصری در مورد این کار بدید.
خیلی ممنون
mojooriass
چهارشنبه 23 اردیبهشت 1394, 21:16 عصر
براي حروف عربي عبارت معادل داريم ولي متاسفانه نه براي فارسي
بهترين كار اينه كه حروف فارسي رو توي يك آرايه نگه داري و روي رشته راه بري و مقايسه كني ...
olampiad
چهارشنبه 23 اردیبهشت 1394, 21:22 عصر
اگه ی کوچولو روش کار رو بگید بقیه رو خودم انجام میدم.
اگه بدونم با چ روشی باید این کار رو انجام بدم بقیشو خودم انجام میدم.
خیلی ممنون
hamedarian2009
چهارشنبه 23 اردیبهشت 1394, 21:23 عصر
سوالتون که ربطی به PHP نداره اما فکرمیکنم این اسکریپت به دردتون میخوره
http://farsitype.ir/
mojooriass
چهارشنبه 23 اردیبهشت 1394, 21:28 عصر
به روش رگولار قابل حل هست از این کد استفاده کنید به جا yourtxt متغییر خودتون را بدید.
$pattern = "/^[\s\x{0600}-\x{06FF}0-9]*$/u";
if (preg_match($pattern, $yourtext, $matches)) {
echo "farsi";
} else {
echo "engilish!";
}
اگه بخوای عدد را هم رو قبول نکنه پرترنو عوض کن بزار
$pattern = "/^[\s\x{0600}-\x{06FF}]*$/u";
olampiad
چهارشنبه 23 اردیبهشت 1394, 21:48 عصر
براي حروف عربي عبارت معادل داريم ولي متاسفانه نه براي فارسي
بهترين كار اينه كه حروف فارسي رو توي يك آرايه نگه داري و روي رشته راه بري و مقايسه كني ...
سلام
اشکال نداره.
همون عربی هم باشه من راضیم.
به این تصویر ی نگا بندازید
http://s3.picofile.com/file/8188319492/aa.PNG
تو این فیلد ها فقط میشه از عدد استفاده کرد.
چ طوری این کار رو انجام دادن.
خیلی ممنون
mojooriass
چهارشنبه 23 اردیبهشت 1394, 22:05 عصر
سلام
اشکال نداره.
همون عربی هم باشه من راضیم.
به این تصویر ی نگا بندازید
http://s3.picofile.com/file/8188319492/aa.PNG
تو این فیلد ها فقط میشه از عدد استفاده کرد.
چ طوری این کار رو انجام دادن.
خیلی ممنون
این مربوط میشه به جاوا اسکریپ تو تاپیک مربوطه مطرح کنید من سمت سرورش را بالا براتون توضیح دادم
hamedarian2009
چهارشنبه 23 اردیبهشت 1394, 22:28 عصر
به این تصویر ی نگا بندازید
http://s3.picofile.com/file/8188319492/aa.PNG
تو این فیلد ها فقط میشه از عدد استفاده کرد.
چ طوری این کار رو انجام دادن.
خیلی ممنون
از این تابع جاوااسکریپت استفاده کنید به این صورت :
<input type="number" name="num" onkeypress="return isNumber(event)">
<script type="text/javascript">
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
</script>
MMSHFE
چهارشنبه 23 اردیبهشت 1394, 23:44 عصر
اگه یه تازه وارد داشت توی بخش PHP تاپیک درمورد JS ایجاد میکرد مشکلی نبود ولی شما دیگه چرا که نزدیک به 1000 پست دارین؟ از بقیه دوستانی که بجای تذکر دادن، جواب میدن هم تعجب میکنم. تاپیک به بخش Javascript منتقل شد.
olampiad
چهارشنبه 23 اردیبهشت 1394, 23:48 عصر
از این تابع جاوااسکریپت استفاده کنید به این صورت :
<input type="number" name="num" onkeypress="return isNumber(event)">
<script type="text/javascript">
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
</script>
سلام و خسته نباشید
خیلی ممنون
عالی بود دوست عزیز
همون چیزی بود که من میخواستم.
فقط
در مورد حروف فقط فارسی یا فقط انگلیسی چیکار کنم.
مثلا من یه فیلدی دارم که فقط میخوام انگلیسی تایپ کنم و کلمات فارسی رو زد چیزی تایپ نکنه.
در چنین فیلد هایی شرایط چطوری هستش.
خیلی ممنون
hamedarian2009
چهارشنبه 23 اردیبهشت 1394, 23:54 عصر
با توجه به تذکر مدیر لطفا سوالتون رو به بخش جاوا اسکریپت منتقل کنید
olampiad
پنج شنبه 24 اردیبهشت 1394, 12:31 عصر
سلام
خودم جوابشو پیدا کردم.
<input type="text" id="text">
<script type="text/javascript">
document.getElementById('text').onkeyup=function() {
var text=document.getElementById('text').value;
var count=text.length;
var start=count-1;
var carakter=text.substring(start,count);
var farsi=Array('ض','ص','ث','ق','ف','غ','ع','ه ','خ','ح','ج','چ','پ','ش','س','ی','ب','ل ','ا','ت','ن','م','ک','گ','ظ'
,'ط','ز','ر','ذ','د','ئ','و','.','ء','أ', 'إ','ؤ','ژ','ي','ة','ۀ','آ');
var indexof=farsi.indexOf(carakter);
if(indexof==-1){
document.getElementById('text').value=text.substri ng(0,start);;
}
}
plague
جمعه 25 اردیبهشت 1394, 05:16 صبح
اینو کد ها رو من با jquery نوشتم
اگه اینا رو تو صفحت داشته باشی کافیه که به فیلدت کلاس farsi یا english یا num بدی تا فقط همون نوع رو بشه توش تایپ کرد
$(document).on( 'keydown' , '.numeric' ,function (e) {
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
(e.keyCode == 65 && e.ctrlKey === true) ||
(e.keyCode >= 35 && e.keyCode <= 40)) {
return;
}
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
$(document).on( 'keydown' , '.farsi' ,function (e) {
console.log(e.key);
if(e.key == 'Alt' || e.key == 'Shift' || e.key == 'Tab' || e.key == 'Backspace')
return ;
if( !e.key.match(/^[0-9 ا آ ئ ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]+$/)){
e.preventDefault();
}
});
$(document).on( 'keydown' , '.engelish' ,function (e) {
console.log(e.key);
if(e.key == 'Alt' || e.key == 'Shift' || e.key == 'Tab' )
return ;
if( !e.key.match(/^[0-9 a-z A-Z]+$/)){
e.preventDefault();
}
});
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.