محدود کردن ورودی input به فارسی / یا انگلیسی
سلام و خسته نباشید
من میخواستم توی فرم php ورودی ها رو محدود کنم
مصلا موقع دریافت نام کاربر میخوام فقط فارسی بتونه تایپ کنه
یا در قسمت اسم کشور میخوام فقط بتونه انگلیسی وارد کنه
و میخوام در بخش شماره تلفن کاربر بتونه فقط عدد وارد کنه
ممنون میشم کمکم کنید، تشکر
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
با استفاده از جی کپوری یا هر کتابخانه از حاوا اسکریپت می توانید به راحتی این کار را انجام دهید.
یا طرف سرور با کمک لینک های زیر انجام دهید.
https://stackoverflow.com/questions/...acter/15203555
https://stackoverflow.com/questions/...-of-characters
https://stackoverflow.com/questions/...t-using-jquery
درحالت کلی با regulare می تونی انجام بدی نمونه کد رو ببین
کد HTML:
<input id="txt-box1" type="text" />
<input id="txt-box2" type="text" />
<input id="txt-box3" type="text" />
<textarea></textarea>
کد HTML:
$.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();
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
نقل قول:
نوشته اصلی توسط
ms313
با استفاده از جی کپوری یا هر کتابخانه از حاوا اسکریپت می توانید به راحتی این کار را انجام دهید.
یا طرف سرور با کمک لینک های زیر انجام دهید.
https://stackoverflow.com/questions/...acter/15203555
https://stackoverflow.com/questions/...-of-characters
https://stackoverflow.com/questions/...t-using-jquery
درحالت کلی با regulare می تونی انجام بدی نمونه کد رو ببین
کد HTML:
<input id="txt-box1" type="text" />
<input id="txt-box2" type="text" />
<input id="txt-box3" type="text" />
<textarea></textarea>
کد HTML:
$.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;
}
این رو پیدا کردم کلا اعداد رو میشه وارد کرد، بر اساس کد اسکی، حالا میخوام علامت + هم تو شماره تلفن بشه وارد کرد، هر کاری میکنم نمیشه وارد کرد
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
نقل قول:
نوشته اصلی توسط
iroo
ممنون
لینک هایی که دادین عبارت با قاعده هست
من میخوام به کمک جاوا این کار بشه و بصورت لحظه ای انجام بشه
regulare کار نکردم متاسفانه
- - - Updated - - -
کد:
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
این رو پیدا کردم کلا اعداد رو میشه وارد کرد، بر اساس کد اسکی، حالا میخوام علامت + هم تو شماره تلفن بشه وارد کرد، هر کاری میکنم نمیشه وارد کرد
ببیند واسه کار شما کدی که دادم رو باید استفاده کنید در ضمن اینو هم توجه داشته باشید که خود اچ تی ام ال ۵ این بخش رو اضافه کرده فقط شما نیاز هست که نوع type رو مشخص کنید.
با کد اسکی درست و حسابی نمیشه اینکار رو انجام داد و زمان گیر میشه واستون...
کد اسکی پلاس هم ۴۳ هست
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
نقل قول:
نوشته اصلی توسط
ms313
ببیند واسه کار شما کدی که دادم رو باید استفاده کنید در ضمن اینو هم توجه داشته باشید که خود اچ تی ام ال ۵ این بخش رو اضافه کرده فقط شما نیاز هست که نوع type رو مشخص کنید.
با کد اسکی درست و حسابی نمیشه اینکار رو انجام داد و زمان گیر میشه واستون...
کد اسکی پلاس هم ۴۳ هست
من با کد فوق تونستم انجام بدم
منتها کد اسکی یک کاراکتر خاص رو نتونستم به تنهایی اعمال کنم و درست از آباد در نمیاد
کد زیر درسته؟؟؟
کد:
if (charCode > 31 && (charCode < 48 || charCode > 57) || charCode == 43 )
return false;
return true;
}
- - - Updated - - -
این کد به درستی کار نمیکنه، چون این charCode == 43 بهمش میریزه
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
نقل قول:
نوشته اصلی توسط
iroo
من با کد فوق تونستم انجام بدم
منتها کد اسکی یک کاراکتر خاص رو نتونستم به تنهایی اعمال کنم و درست از آباد در نمیاد
کد زیر درسته؟؟؟
کد:
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;
}
البته این کد به نظرم یکم غیر اصولی میاد و شاید می تونست شرط رو بهتر و اصولی تر هم بنویسه.
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
نقل قول:
نوشته اصلی توسط
AtrafNet
پرانتز تو شرط های زبان های برنامه نویسی مختلف مثل پرانتز تو معادله های ریاضی عمل میکنه و زبان های برنامه نویسی هم اول پرانتز ها رو محاسبه میکنن بعدش میان سراغ بیرون پرانتز ها.
ببینید این شرط آمده میگه اگر 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 ّرای دریافت ایمیل دارم
کاربر باید بتونه تمام اعداد و حروف انگلیسی رو وارد کنه
به علاوه علامت هایی مثل @ . _ -
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
نقل قول:
نوشته اصلی توسط
iroo
سلام
ممنون بابت پاسختون
ولی کار نکرد...
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
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
نقل قول:
نوشته اصلی توسط
AtrafNet
اره pattern رو بررسی کرده بودم ولی چیزی ازش سر در نیاوردم، بخصوص به نظرم استفاده از جاوا این مزیت رو داره که همزمان اعمال مکینه!
در حالی که pattern اطلاعات رو وارد میکنی در زمان سابمیت کردن بررسی میکنه، من اینطوری فک میکنم
اون جاوا رو میشه یه مثال بزنید؟
پاسخ : محدود کردن ورودی input به فارسی / یا انگلیسی
نقل قول:
نوشته اصلی توسط
iroo
اره pattern رو بررسی کرده بودم ولی چیزی ازش سر در نیاوردم، بخصوص به نظرم استفاده از جاوا این مزیت رو داره که همزمان اعمال مکینه!
در حالی که pattern اطلاعات رو وارد میکنی در زمان سابمیت کردن بررسی میکنه، من اینطوری فک میکنم
اون جاوا رو میشه یه مثال بزنید؟
دوسا عزیز منظورتون از جاوا همان جاوا اسکریپت هست !؟
خب ربطی نداره که شما تو هر رویدادی انجام بدین کارتون رو راه میندازه همزمان غیر همزمان نداره .
شما بنویسی تو رویداد keyup وkeydown زمانی که دکمه زده میشه بررسی می کنه همین...