سلام ، من میخوام زمانی که کاربر توی یه input مقداری وارد میکنه فقط انگلیسی باشه
ممنون اگه کد درست رو واسم بفرستید
@milad @hesammousavi @ali.bayat
<input type="text" id="" name="" title="" onkeypress="return /[a-z0-9]/i.test(event.key)">
@milad
ممنون این کد کار کرد
ولی من چطوری اینو توی کد خودم درستش کنم ؟
let searchBox = document.getElementById('searchBox');
searchBox.addEventListener("keypress",(e)=>{
return /[a-z0-9]/i.test(e.key);
})
کافیه همینی که نوشتم رو مستقیم داخل کدهای html خودت بزاری، نیازی نیست که بصورت جدا درون script باشه.
اگر هم که اصرار داری که جدا باشه، اینطوری بنویسش:
<script>
document.querySelector("#searchBox").onkeypress = function(event) { return /[a-z0-9]/i.test(event.key) };
</script>
@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)
})
این دوتا باهم متفاوتن.
توی 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();
})
توضیحات بیشتر در خصوص مقدار برگشتی در onevent ها:
http://www.permadi.com/tutorial/jsEventBubbling/index.html
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟