سؤال: اضغط على مفتاح إدخال عند إدخال النص في طريقة الإدخال الصينية ؛ سيقوم حدث keyup الربط بإدخال النص الإنجليزي في طريقة الإدخال في مربع النص ولمس زر إرسال مباشرة
أحداث لوحة المفاتيح:
عند الضغط على المفتاح أو إطلاقه ، قد يتم تشغيل ثلاثة أحداث لوحة مفاتيح في كل متصفح
Keydown
keypress
keyup
يحدث حدث keydown عند الضغط على المفتاح ، ثم يتم تشغيل keypress. يتم تشغيل حدث keyup عند إصدار المفتاح.
طريقة الإدخال الصينية:
Firfox: keydown trigger
Chrome: TRIGRES TRIGRES KEYDOWN و KEYUP ، أدخل للتأكيد على أن الإدخال لا يؤدي إلا
IE: إدخال مشغلات KeyDown و Keyup ، أدخل لتأكيد مشغلات الإدخال Keydown ، keyup
Safari: keydown trigger keydown و keyup ، أدخل لتأكيد مفتاح تشغيل الإدخال ، keyup
الأوبرا: مفتاح تشغيل الإدخال و KeyUp ، أدخل لتأكيد مفتاح تشغيل الإدخال ، KeyUp
في المدخلات والنص ، عندما يتم تشغيل أي حدث Keypress في الصينية
حدث keypress: دعم طريقة الإدخال الصينية ضعيف ، ولا يمكنه الاستجابة للمدخلات الصينية ؛ لا يمكنه الاستجابة لمفاتيح وظائف النظام
رمز HTML:
<textarea name = "" id = "text" cols = "30" rows = "5"> </textarea> <script type = "text/javaScript"> var text = document.getElementById ('text') ؛ text.onkeydown = function (e) {console.log ('keydown') ؛ if ( } console.log ('value' ، text.value) ؛ } text.onkeypress = function (e) {console.log ('keypress') ؛ console.log ('value' ، text.value) ؛ } text.onkeyup = function (e) {console.log ('keyup') ؛ if ( } console.log ('value' ، text.value) ؛ } </script>طريقة إدخال اللغة الإنجليزية:
تظهر الصورة أعلاه الاستنتاج:
يحدث KeyDown و Keypress عندما لم يتم كتابة النص في مربع الإدخال. إذا تم إخراج مربع النص في أحداث KeyDown و Keypress ، فسيتم تشغيل النص في مربع النص قبل حدث لوحة المفاتيح ؛
عندما يتم تشغيل حدث Keyup ، تم الانتهاء من تشغيل نص الإدخال على حدث لوحة المفاتيح بأكمله ، وما تم الحصول عليه هو محتوى النص بعد تشغيل حدث لوحة المفاتيح.
طريقة الإدخال الصينية: [لا يوجد حدث Keypress]
بعد الضغط على مفتاح Enter للتأكيد:
تضغط طريقة الإدخال الصينية على مفتاح الإدخال عند عدم تحديد الإدخال. تأثير keydown و keyup مختلف. لن يؤدي KeyDown إلى تشغيل حدث طريقة Enter مسبقًا.
إجابة:
تكمل معظم طرق الإدخال عملية الإدخال في KeyDown ، لذلك إذا كان إرسال الإدخال في حدث KeyUP ، فسيتم إرسال مفتاح الإدخال مباشرة إلى مفتاح الإدخال وسيتم تقديم مفتاح الإدخال ، مما يؤدي إلى مشاكل في الصراع.
الطريقة: قم بتغيير حدث تقديم الإدخال إلى KeyDown. في هذا الوقت ، عندما يحدث حدث keydown ، يكون ذلك في طريقة الإدخال ، ولن يحدث في حدث إرسال صندوق التقديم ، وبالتالي حل الصراع.
بعض النصائح:
بعد تشغيل KeyDown ، قد لا يتم تشغيل Keyup. عند الضغط على KeyDown وسحب الماوس ، لن يتم تشغيل حدث Keyup.
يستخدم Keypress بشكل أساسي لالتقاط أحرف ANSI باستثناء F1-12 ، Shift ، Alt ، Ctrl ، Insert ، Home ، PGUP ، DELETE ، END ، PGDN ، SCROLLLOCK ، إيقاف مؤقت ، numlock ، {MENA KEY} ، { Start Key } ومفاتيح السهم.
يمكن للعائلة Keydown و KeyUP التقاط جميع المفاتيح على لوحة المفاتيح باستثناء PRSCRN
يمكن أن يلتقط Keypress فقط أحرفًا واحدة
يمكن لـ KeyDown و Keyup التقاط مجموعات المفاتيح.
keypress يلتقط حالة شخصية واحدة
يعد KeyDown و Keyup قيمة للقيم الرئيسية التي تم التقاطها بواسطة حرف واحد ، مما يعني أنه لا يمكن الحكم على حالة شخصية واحدة.
لا يميز keypress بين الأحرف الرقمية عن لوحة المفاتيح الأساسية.
يميز KeyDown و Keyup الأحرف الرقمية عن لوحة المفاتيح الأساسية.
من بينها ، لا يمكن التقاط Keypress Keypress و KeyDown و Keyup.
عند استخدام لوحة المفاتيح ، يمكنك عادةً استخدام وظيفة مجموعة المفاتيح مماثلة لـ CTRL+Shift+Alt.
المقالة أعلاه حول حل الصراع لطريقة الإدخال ومفتاح الاختصار لإرسال الرسالة هي كل المحتوى المشترك من قبل المحرر. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.