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



ช่วยดูหน้านี้ให้หน่อยครับ คือผมต้องการให้ 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 ไม่ทราบว่ามีวิืธีไหมครับ
    

        

        

         

    

     

22 ต.ค. 2553 3 1,320

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
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^