دعونا أولاً نفهم الاختلافات بين كل حدث
KeyDown: يحدث عندما يتم الضغط على المفتاح عندما يكون عنصر التحكم هو التركيز
keypress: يحدث عندما يتم الضغط على المفتاح عندما يكون عنصر التحكم هو التركيز
keyup: يحدث عندما يتم إصدار المفتاح عندما يكون عنصر التحكم هو التركيز
1. يستخدم keypress بشكل أساسي لتلقي أحرف ANSI مثل الحروف والأرقام. يمكن لعمليات حدث KeyDown و Keyup عادة التقاط جميع المفاتيح على لوحة المفاتيح باستثناء PRSCRN (لم تتم مناقشة مفاتيح لوحات المفاتيح الخاصة هنا.
2. يمكن أن يلتقط Keypress فقط حرفًا واحدًا ، في حين أن KeyDown و Keyup يمكنه التقاط مجموعة من المفاتيح.
3. Keypress لا يعرض الحالة الفعلية للوحة المفاتيح (مفتاح Shift) ، ولكنه يمر فقط بالحرف. يفسر Keypress أشكال الحالة العلوية والسفلية لكل حرف كرموز مفاتيح مختلفة ، أي كحرفتين مختلفتين. لا يمكن لـ KeyDown و Keyup تحديد حجم أحرف القيمة الرئيسية. يفسر keydown و keyup شكل الأحرف الكبيرة والصغيرة لكل حرف مع معلمتين: رمز المفاتيح - يعرض المفتاح الفعلي (إرجاع A و A as نفس المفتاح) والتحول - يشير إلى حالة مفتاح Shift + هم.
5. لا يميز keypress بين الأحرف الرقمية من لوحة المفاتيح ولوحة المفاتيح الأساسية ، بينما يميز KeyDown و Keyup بين الأحرف الرقمية من لوحة المفاتيح ولوحة المفاتيح الأساسية.
6. تحدث أحداث KeyDown و Keyup عند (keydown) أو إطلاق (keyup) مفتاح. نظرًا لأن مفاتيح لوحة المفاتيح عادة ما يتم دفعها على الفور (هذا يختلف عن الماوس) ، لا يوجد فرق كبير بين هذين الحدثين. علاوة على ذلك ، هناك فرق آخر بين UP والآخران: للحكم على الحالة المعدلة للمفتاح ، يجب استخدام UP.
يمكننا استخدام حدث keydown لحظر إدخال المستخدم ، على سبيل المثال ، يمكن لحقل إدخال معين إدخال الأرقام فقط
رمز المفاتيح للمفاتيح الرقمية على لوحة المفاتيح
[48-57] مفاتيح الأرقام
[96-105] لوحة مفاتيح رقمية
تسمح أيضًا بحذف مفتاح المساحة الخلفية
الرمز كما يلي
نسخة الكود كما يلي:
var input
input.onkeydown = function (e) {
var keycode = e.KeyCode
إذا (! isNumber (keycode)) ارجع كاذبة
}
// فقط يمكن إدخال الأرقام
وظيفة isNumber (keycode) {
// رقم
if (keycode> = 48 && keycode <= 57) إرجاع صحيح
// لوحة مفاتيح رقمية صغيرة
if (keycode> = 96 && keycode <= 105) إرجاع صحيح
// مفتاح Backspace
إذا كان (keycode == 8) إرجاع صحيح
العودة كاذبة
}