تصف هذه المقالة طريقة JavaScript التي تتحكم في تنسيق وقت الإدخال. شاركه للرجوع إليه. التحليل المحدد هو كما يلي:
اعتدت على عمل إدخال JavaScript للتحكم في تنسيق الوقت ، وذلك باستخدام أحداث Keydown و Keyup ، لكنني شعرت أن الكتابة كانت معقدة للغاية وكان هناك أخطاء.
تعلمت اليوم الفرق بين أحداث Keypress و Keydown و Keyup. إنه على النحو التالي (فقط تعرف على الكثير في الوقت الحالي):
KeyDown: يتم تشغيله عند الضغط على المفتاح. من خلال الحدث ، يمكنك الحصول على رمز المفاتيح والحصول على القيمة قبل الإدخال في مربع النص ؛
keyup: يتم تشغيله عند ظهور المفتاح (الإصدار). يمكن الحصول على رمز المفاتيح من خلال الحدث ويمكن الحصول على القيمة بعد الإدخال من مربع النص ؛
Keypress: هذا الحدث هو نفسه في Chrome و IE ، ولكن Firefox مختلف بعض الشيء ؛
1. في Chrome و IE: طالما أن المفتاح المضغوط يمكن أن يظهر أحرفًا في مربع النص ، سيتم تشغيله (مثل رسائل الإدخال والأرقام والرموز ، إلخ) ، يمكن الحصول على رمز المفاتيح من خلال الحدث ، و event.key غير محدد ؛ إذا لم تتمكن الشخصيات من الظهور ، فلن يتم تشغيلها (مثل مفاتيح السهم ، المنزل ، المسافة الخلفية ، إلخ)
2. في Firefox: مفاتيح مثل الحروف والأرقام والرموز والاتجاهات ومساحات الخلفية ، وما إلى ذلك يمكن أن تؤدي إلى تشغيلها. يمكن الحصول على الاسم الرئيسي من خلال Event.Key. إذا كان بإمكان المفتاح المضغوط إخراج الأحرف ، فإن event.keycode هو 0. إذا كان لا يمكن إخراج الحرف ، فإن event.KeyCode هو رمز ASCII المقابل.
بالعودة إلى الموضوع ، انظر إلى الكود أولاً (الحدث المذكور أعلاه يعادل E في الكود التالي):
نسخة الكود كما يلي: var isff = /firefox/i.test(navigator.useragent) ؛
$ ("المدخلات"). على ({
keyup: function (e) {
!/^[/d:]+$/. test (e.target.value) && (
} ،
keypress: function (e) {
if (isff && e.keycode! == 0) {
/// الضغط على أي مفتاح في Firefox سيؤدي إلى تشغيل حدث Keypress ، بينما في IE/Chrome سيؤدي فقط إلى تشغيل المفتاح الذي يمكنه إخراج الأحرف
/// for firefox ، e.keycode! == 0 يضغط على أحد المساحة الخلفية والاتجاه والمنزل والمفاتيح الأخرى.
} آخر {
if (e.target.value.length> 7)
العودة كاذبة
if (//d {2) $/.test(e.target.value)) {
e.target.value += ':' ؛
}
var char = string.fromcharcode (e.KeyCode === 0؟
if (!/^/d/.test (char))
العودة كاذبة
}
}
}) ؛
يتم استخدام ISFF && نظرًا لأن e.KeyCode في Firefox قد لا يحصل بالضرورة على القيمة ، يتم استخدام E. الذي يستخدم بدلاً من ذلك.
يتم استخدام keyup للتعامل مع مشكلة القدرة على إدخال الحروف الصينية أو الحروف عند استخدام طريقة الإدخال.
استخدم string.fromcharcode () للحصول على الأحرف المقابلة لرمز ASCII.
آمل أن تكون هذه المقالة مفيدة لبرمجة JavaScript للجميع.