جشنواره بهارانه راکت! ۳۵% تخفیف ویژه بر روی دوره‌های آموزشی

مشاهده دوره‌ها
ثانیه
دقیقه
ساعت
روز
فرهاد
4 سال پیش توسط فرهاد مطرح شد
7 پاسخ

تایپ انگلیسی در input

سلام ، من میخوام زمانی که کاربر توی یه input مقداری وارد میکنه فقط انگلیسی باشه

  1. حروف بزرگ و کوچیک باشه
  2. اعداد باشه
  3. جی کوئری نباشه

ممنون اگه کد درست رو واسم بفرستید
@milad @hesammousavi @ali.bayat


ثبت پرسش جدید
میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش مطرح شد
1
<input type="text" id="" name="" title="" onkeypress="return /[a-z0-9]/i.test(event.key)">

فرهاد
تخصص : Javascript Developer
@cfarhad 4 سال پیش مطرح شد
0

@milad
ممنون این کد کار کرد
ولی من چطوری اینو توی کد خودم درستش کنم ؟

let searchBox = document.getElementById('searchBox');
searchBox.addEventListener("keypress",(e)=>{

    return /[a-z0-9]/i.test(e.key);
})

میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش مطرح شد
0

کافیه همینی که نوشتم رو مستقیم داخل کدهای html خودت بزاری، نیازی نیست که بصورت جدا درون script باشه.


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش مطرح شد
0

اگر هم که اصرار داری که جدا باشه، اینطوری بنویسش:

<script>
    document.querySelector("#searchBox").onkeypress = function(event) { return /[a-z0-9]/i.test(event.key) };
</script>

فرهاد
تخصص : Javascript Developer
@cfarhad 4 سال پیش آپدیت شد
0

@milad این کد کار میکنه ولی اون یکی کار نمیکنه ؛ دلیلش چیه

    document.querySelector("#searchBox").onkeypress = function(event) { return /[a-z0-9]/i.test(event.key) };

let searchBox = document.querySelector("#searchBox");
searchBox.addEventListener('keypress',(event)=>{
    return /[a-z0-9]/i.test(event.key)
})

میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش مطرح شد
0

این دوتا باهم متفاوتن.
توی onevent ها، زمانی که مقدار برگشتی false باشه، باعث میشه که رویداد مورد نظر رُخ نده. / در اینجا جلوی رویداد onkeypress رو میگیره و برای همین اون حرف ثبت نمیشه.
این قضیه مقدار برگشتی true/false توی onevent جریان داره ولی توی addEventListener صادق نیستش. اونجا از event.preventDefault() استفاده کنید.

document.querySelector("#searchBox").onkeypress = function(event) { return /[a-z0-9]/i.test(event.key) };
یا
document.querySelector("#searchBox").addEventListener('keypress', (event) => {
    if (!/[a-z0-9]/i.test(event.key)) event.preventDefault();
})

میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش مطرح شد
0

توضیحات بیشتر در خصوص مقدار برگشتی در onevent ها:
http://www.permadi.com/tutorial/jsEventBubbling/index.html


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام