A-AA+then

.focus() ไม่ทำงานหลังจากการ Add

1,273

ช่วยดูหน้านี้ให้หน่อยครับ คือผมต้องการให้ Cursor มาอยู่ใน Txtbox ที่ชื่อว่า model_number แล้วตอนนี้ก็สามารถทำได้แล้วโดยใช้

<body onLoad="document.getElementById('model_number').focus()">

แต่หลังจากการ Add ข้อมูลลงแล้วและให้ Refresh หน้าโดยคำสั่งนี้
    
    
    <script type="text/javascript">
    window.location.href="record_receive.php";
    </script>
     

Cursor กลับไม่ไปอยู่ใน Txtbox ที่ต้องการ แต่กลับไปอยู่ใน Address bar
    
    
    ซึ่งถ้ากด Refresh ปกติของ IE Cursor จะมาอยู่ตามที่ได้ระบุไว้ ไม่ทราบว่ามีวิธีไหนไหมคับ ที่ Add ข้อมูลแล้วให้ Cursor มาอยู่ตามที่เราตั้งไว้ แต่การ Add ของผมใช้ Onblur นะครับ ไม่ได้มาจากปุ่ม Button เนื่องจากรับจาก Scanbarcode ไม่ทราบว่ามีวิืธีไหมครับ     
        
        
         
    
     

3 ความคิดเห็น

1. ลองใช้ window.location.reload() หากการ refresh เป็นหน้าเดิม

2. หรือ ลองหน่วงเวลาเล็กน้อย (100 คือ เวลา ลองปรับเวลาการหน่วงดู)
window.setTimeout(function(){document.getElementById('module_number').focus()}, 100);

ปกติแล้วการใช้คำสั่ง focus หน้าเว็บต้อง active ด้วย ไม่งั้น error (หมายถึง windows นั้นต้องได้รับโฟกัสด้วย)
1

ทดลองแล้วครับ

วิธีที่ 1 จะ Refresh หน้าเดิมไม่ออกไปไหนเลยครับ

วิธีที่ 2 หน่วงเวลาแล้วก็ยังไม่ได้เหมือนกันครับ

ซึ่งก็หน้าแปลกที่ว่าถ้่าเป็นการ link มาสามารถที่จะทำให้ Cusor อยู่ตามตำแหน่งที่ต้องการได้ 

ผมก็ได้ทดลอง Redirect ไปหน้าอื่นก่อน แล้วค่อย Redirect กลับมา ก็ไม่สามารถทำได้อีกเหมือนกัน 

ขอบคุณมากครับ
2

ลองใช้ window.onload หรือ ฟังก์ชั่นสำหรับ DOM ระดับ 2 เช่น

window.addEventListener() 
3
^