PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : محدود کردن ورودی input به فارسی / یا انگلیسی



iroo
July 18th, 2017, 18:10
سلام و خسته نباشید
من میخواستم توی فرم php ورودی ها رو محدود کنم
مصلا موقع دریافت نام کاربر میخوام فقط فارسی بتونه تایپ کنه
یا در قسمت اسم کشور میخوام فقط بتونه انگلیسی وارد کنه
و میخوام در بخش شماره تلفن کاربر بتونه فقط عدد وارد کنه
ممنون میشم کمکم کنید، تشکر

ms313
July 19th, 2017, 02:02
با استفاده از جی کپوری یا هر کتابخانه از حاوا اسکریپت می توانید به راحتی این کار را انجام دهید.
یا طرف سرور با کمک لینک های زیر انجام دهید.
https://stackoverflow.com/questions/15178393/how-filter-input-for-farsi-character/15203555
https://stackoverflow.com/questions/25413145/restricting-characters-in-input-field-to-a-set-of-characters
https://stackoverflow.com/questions/10086746/filtering-input-text-using-jquery
درحالت کلی با regulare می تونی انجام بدی نمونه کد رو ببین


<input id="txt-box1" type="text" />
<input id="txt-box2" type="text" />
<input id="txt-box3" type="text" />

<textarea></textarea>



$.fn.restrictInputs = function(restrictPattern){
var targets = $(this);
var pattern = restrictPattern || /[\a-z+0-9]/// some default pattern

var restrictHandler = function(){
var val = $(this).val();
var newVal = val.replace(pattern, '');

if (val !== newVal) { // To prevent selection and keyboard navigation issues
$(this).val(newVal);
}
};

targets.on('keyup', restrictHandler);
targets.on('paste', restrictHandler);
targets.on('change', restrictHandler);
};


$('input, textarea').restrictInputs();

iroo
July 19th, 2017, 19:28
با استفاده از جی کپوری یا هر کتابخانه از حاوا اسکریپت می توانید به راحتی این کار را انجام دهید.
یا طرف سرور با کمک لینک های زیر انجام دهید.
https://stackoverflow.com/questions/15178393/how-filter-input-for-farsi-character/15203555
https://stackoverflow.com/questions/25413145/restricting-characters-in-input-field-to-a-set-of-characters
https://stackoverflow.com/questions/10086746/filtering-input-text-using-jquery
درحالت کلی با regulare می تونی انجام بدی نمونه کد رو ببین


<input id="txt-box1" type="text" />
<input id="txt-box2" type="text" />
<input id="txt-box3" type="text" />

<textarea></textarea>



$.fn.restrictInputs = function(restrictPattern){
var targets = $(this);
var pattern = restrictPattern || /[\a-z+0-9]/// some default pattern

var restrictHandler = function(){
var val = $(this).val();
var newVal = val.replace(pattern, '');

if (val !== newVal) { // To prevent selection and keyboard navigation issues
$(this).val(newVal);
}
};

targets.on('keyup', restrictHandler);
targets.on('paste', restrictHandler);
targets.on('change', restrictHandler);
};


$('input, textarea').restrictInputs();


ممنون
لینک هایی که دادین عبارت با قاعده هست
من میخوام به کمک جاوا این کار بشه و بصورت لحظه ای انجام بشه

regulare کار نکردم متاسفانه



- - - Updated - - -


if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}


این رو پیدا کردم کلا اعداد رو میشه وارد کرد، بر اساس کد اسکی، حالا میخوام علامت + هم تو شماره تلفن بشه وارد کرد، هر کاری میکنم نمیشه وارد کرد

ms313
July 20th, 2017, 00:32
ممنون
لینک هایی که دادین عبارت با قاعده هست
من میخوام به کمک جاوا این کار بشه و بصورت لحظه ای انجام بشه

regulare کار نکردم متاسفانه



- - - Updated - - -


if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}


این رو پیدا کردم کلا اعداد رو میشه وارد کرد، بر اساس کد اسکی، حالا میخوام علامت + هم تو شماره تلفن بشه وارد کرد، هر کاری میکنم نمیشه وارد کرد

ببیند واسه کار شما کدی که دادم رو باید استفاده کنید در ضمن اینو هم توجه داشته باشید که خود اچ تی ام ال ۵ این بخش رو اضافه کرده فقط شما نیاز هست که نوع type رو مشخص کنید.
با کد اسکی درست و حسابی نمیشه اینکار رو انجام داد و زمان گیر میشه واستون...
کد اسکی پلاس هم ۴۳ هست

iroo
July 20th, 2017, 08:33
ببیند واسه کار شما کدی که دادم رو باید استفاده کنید در ضمن اینو هم توجه داشته باشید که خود اچ تی ام ال ۵ این بخش رو اضافه کرده فقط شما نیاز هست که نوع type رو مشخص کنید.
با کد اسکی درست و حسابی نمیشه اینکار رو انجام داد و زمان گیر میشه واستون...
کد اسکی پلاس هم ۴۳ هست

من با کد فوق تونستم انجام بدم
منتها کد اسکی یک کاراکتر خاص رو نتونستم به تنهایی اعمال کنم و درست از آباد در نمیاد

کد زیر درسته؟؟؟



if (charCode > 31 && (charCode < 48 || charCode > 57) || charCode == 43 )
return false;
return true;
}



- - - Updated - - -

این کد به درستی کار نمیکنه، چون این charCode == 43 بهمش میریزه

AtrafNet
July 20th, 2017, 12:14
من با کد فوق تونستم انجام بدم
منتها کد اسکی یک کاراکتر خاص رو نتونستم به تنهایی اعمال کنم و درست از آباد در نمیاد

کد زیر درسته؟؟؟



if (charCode > 31 && (charCode < 48 || charCode > 57) || charCode == 43 )
return false;
return true;
}



- - - Updated - - -

این کد به درستی کار نمیکنه، چون این charCode == 43 بهمش میریزه

پرانتز تو شرط های زبان های برنامه نویسی مختلف مثل پرانتز تو معادله های ریاضی عمل میکنه و زبان های برنامه نویسی هم اول پرانتز ها رو محاسبه میکنن بعدش میان سراغ بیرون پرانتز ها.

ببینید این شرط آمده میگه اگر charCode بزرگتر از 31 بود به علاوه داخل پرانتز اگر charCode یا کوچکتر از 48 و یا بزرگتر از 57 بود کد اجرا بشه/

خب حالا این وسط چون شما بعد از کل این شرط آمدید یه علامت || که به معنای یا (OR) هستش رو گذاشتید یعنی اجرا کننده زبان فکر میکنه یا شرط قبلی باید انجام بشه که بالا گفتم یا شرطی که شما اضافه کردید.

برای همین اگر می خواین شرط شما همراه شرط قبلی اجرا بشه باید به پرانتز ها دقت کنید و شرط خودتون رو قاطی شرط قبلی اضافه کنید.

مثلاً اینطوری:



if (charCode > 31 && (charCode < 48 || charCode > 57 || charCode == 43))
return false;
return true;
}


البته این کد به نظرم یکم غیر اصولی میاد و شاید می تونست شرط رو بهتر و اصولی تر هم بنویسه.

iroo
July 20th, 2017, 12:18
پرانتز تو شرط های زبان های برنامه نویسی مختلف مثل پرانتز تو معادله های ریاضی عمل میکنه و زبان های برنامه نویسی هم اول پرانتز ها رو محاسبه میکنن بعدش میان سراغ بیرون پرانتز ها.

ببینید این شرط آمده میگه اگر charCode بزرگتر از 31 بود به علاوه داخل پرانتز اگر charCode یا کوچکتر از 48 و یا بزرگتر از 57 بود کد اجرا بشه/

خب حالا این وسط چون شما بعد از کل این شرط آمدید یه علامت || که به معنای یا (OR) هستش رو گذاشتید یعنی اجرا کننده زبان فکر میکنه یا شرط قبلی باید انجام بشه که بالا گفتم یا شرطی که شما اضافه کردید.

برای همین اگر می خواین شرط شما همراه شرط قبلی اجرا بشه باید به پرانتز ها دقت کنید و شرط خودتون رو قاطی شرط قبلی اضافه کنید.

مثلاً اینطوری:



if (charCode > 31 && (charCode < 48 || charCode > 57 || charCode == 43))
return false;
return true;
}


البته این کد به نظرم یکم غیر اصولی میاد و شاید می تونست شرط رو بهتر و اصولی تر هم بنویسه.

سلام
ممنون بابت پاسختون

ولی کار نکرد...

onKeypress="if (event.keyCode < 64 || (event.keyCode > 91 && event.keyCode <97) || event.keyCode>122 ) event.returnValue = false;"


ببنید فرض کنید یک input ّرای دریافت ایمیل دارم
کاربر باید بتونه تمام اعداد و حروف انگلیسی رو وارد کنه
به علاوه علامت هایی مثل @ . _ -

AtrafNet
July 20th, 2017, 13:01
سلام
ممنون بابت پاسختون

ولی کار نکرد...

onKeypress="if (event.keyCode < 64 || (event.keyCode > 91 && event.keyCode <97) || event.keyCode>122 ) event.returnValue = false;"


ببنید فرض کنید یک input ّرای دریافت ایمیل دارم
کاربر باید بتونه تمام اعداد و حروف انگلیسی رو وارد کنه
به علاوه علامت هایی مثل @ . _ -


به نظرم اگه بتونید از همون RegEx استفاده کنید بهتره خصوصاً که خود HTML5 هم چنین قابلیتی برای تگ Input داره:

https://www.w3schools.com/tags/att_input_pattern.asp

iroo
July 20th, 2017, 13:04
به نظرم اگه بتونید از همون RegEx استفاده کنید بهتره خصوصاً که خود HTML5 هم چنین قابلیتی برای تگ Input داره:

https://www.w3schools.com/tags/att_input_pattern.asp

اره pattern رو بررسی کرده بودم ولی چیزی ازش سر در نیاوردم، بخصوص به نظرم استفاده از جاوا این مزیت رو داره که همزمان اعمال مکینه!
در حالی که pattern اطلاعات رو وارد میکنی در زمان سابمیت کردن بررسی میکنه، من اینطوری فک میکنم

اون جاوا رو میشه یه مثال بزنید؟

ms313
July 20th, 2017, 16:26
اره pattern رو بررسی کرده بودم ولی چیزی ازش سر در نیاوردم، بخصوص به نظرم استفاده از جاوا این مزیت رو داره که همزمان اعمال مکینه!
در حالی که pattern اطلاعات رو وارد میکنی در زمان سابمیت کردن بررسی میکنه، من اینطوری فک میکنم

اون جاوا رو میشه یه مثال بزنید؟
دوسا عزیز منظورتون از جاوا همان جاوا اسکریپت هست !؟
خب ربطی نداره که شما تو هر رویدادی انجام بدین کارتون رو راه میندازه همزمان غیر همزمان نداره .
شما بنویسی تو رویداد keyup وkeydown زمانی که دکمه زده میشه بررسی می کنه همین...

iroo
July 20th, 2017, 16:29
دوسا عزیز منظورتون از جاوا همان جاوا اسکریپت هست !؟
خب ربطی نداره که شما تو هر رویدادی انجام بدین کارتون رو راه میندازه همزمان غیر همزمان نداره .
شما بنویسی تو رویداد keyup وkeydown زمانی که دکمه زده میشه بررسی می کنه همین...


onKeypress="if (event.keyCode < 64 || (event.keyCode > 91 && event.keyCode <97) || event.keyCode>122 ) event.returnValue = false;"
ببینید کد فوق کار میکنه و درسته
منتها من نمی تونم یک کد اسکی رو به تنهایی اضافه کنم
شما شما کد اسکی علامت "." رو به این اضافه کنید، من هر کاری میکنم نمیشه