จำเป็นต้องป้อนรหัสผ่านและกด ENTER เพื่อเรียกเหตุการณ์พื้นหลัง ดูเหมือนว่าจะเป็นข้อกำหนดที่ง่ายมาก แต่ก็พบปัญหามากมาย
ส่วนใหญ่มีกล่องข้อความอินพุตรหัสผ่านในเนื้อหา HTML และปุ่มเพื่อเรียกเหตุการณ์พื้นหลัง
1. หลังจากกล่องข้อความกล่องข้อความได้รับโฟกัสให้กด Enter โดยตรงและหน้าจะได้รับการรีเฟรช
หลังจากการศึกษารหัสอย่างระมัดระวังปรากฎว่าเมื่อมีการควบคุมกล่องข้อความเดียวในหน้าเว็บหน้าจะรีเฟรชเมื่อกด Enter
วิธีจัดการ: เพิ่มตัวควบคุมกล่องข้อความที่ซ่อนอยู่ในหน้า
ไม่ทราบหลักการเฉพาะ!
2. ใช้ jQuery เพื่อใช้วิธีการ:
$ (เอกสาร) .ready (function () {$ ("#tbpassword"). focus (); $ ('#bpassword'). keydown (ฟังก์ชั่น (e) {ถ้า (e.keycode == 13) {$ ("#ctl00_contentbody_btnaccept_linkbutton") [0]3. ด้วยเหตุผลต่าง ๆ ฉันไม่สามารถใช้วิธีการใช้งาน jQuery ได้ดังนั้นฉันต้องเปลี่ยนเป็น JS ความเข้ากันได้ของมันเป็นปัญหาที่ลำบากที่สุด
document.getElementByIdx_x_x ("tbpassword"). onkeypress = function (เหตุการณ์) {var keynum; if (window.event) // ie {keynum = window.event.keycode; } อื่นถ้า (event.which) // netscape/firefox/opera {keynum = event.which; } if (keynum == 13) document.getElementByIdx_x_x ('ctl00_contentbody_btnaccept_linkbutton') คลิก (); -ภาพประกอบ:
อ่านปุ่มแป้นพิมพ์ภายใต้ IE:
keynum = event.keycode; // ตัวอักษร D, keynum = 100 keychar = string.fromCharcode (keynum); // แปลง Keynum เป็นอักขระ D
อ่านปุ่มแป้นพิมพ์ใน Firefox:
keynum = event.which; // ตัวอักษร D, keynum = 100 keychar = string.fromCharcode (keynum); // แปลง Keynum เป็นอักขระ D
ตัวอย่างเช่นใน IE มีเพียงแอตทริบิวต์ของคิ้วในขณะที่ Firefox มีแอตทริบิวต์ใดและ charcode และ Opera มีปุ่มกดและแอตทริบิวต์ใด
ดังนั้นปัญหาความเข้ากันได้นี้จึงได้รับการแก้ไขใน jQuery
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน