การตั้งค่าโฟกัสบนช่องป้อน HTML ในการโหลดหน้า


99

ฉันกำลังพยายามตั้งค่าโฟกัสเริ่มต้นที่ช่องป้อนข้อมูลเมื่อโหลดหน้าเว็บ (ตัวอย่าง: google) หน้าของฉันเรียบง่ายมาก แต่ฉันคิดไม่ออกว่าจะทำอย่างไร

นี่คือสิ่งที่ฉันมีจนถึงตอนนี้:

<html>
<head>
 <title>Password Protected Page</title>

 <script type="text/javascript">
 function FocusOnInput()
 {
 document.getElementById("PasswordInput").focus();
 }
 </script>

 <style type="text/css" media="screen">
  body, html {height: 100%; padding: 0px; margin: 0px;}
  #outer {width: 100%; height: 100%; overflow: visible; padding: 0px; margin: 0px;}
  #middle {vertical-align: middle}
  #centered {width: 280px; margin-left: auto; margin-right: auto; text-align:center;}
 </style>
</head>
<body onload="FocusOnInput()">
 <table id="outer" cellpadding="0" cellspacing="0">
  <tr><td id="middle">
   <div id="centered">
  <form action="verify.php" method="post">
   <input type="password" name="PasswordInput"/>
  </form>
   </div>
  </td></tr>
 </table>
</body>
</html>

ทำไมถึงใช้ไม่ได้ในขณะที่มันทำงานได้ดี?

<html>
<head>
<script type="text/javascript">
function FocusOnInput()
{
     document.getElementById("InputID").focus();
}
</script>
</head>

<body onload="FocusOnInput()">
  <form>
       <input type="text" id="InputID">
  </form>
</body>

</html>

ความช่วยเหลือชื่นชมมาก :-)

คำตอบ:


36

บรรทัดนี้:

<input type="password" name="PasswordInput"/>

ควรมีแอตทริบิวต์idดังนี้:

<input type="password" name="PasswordInput" id="PasswordInput"/>

จะตั้งโฟกัสอินพุตจริงหรือไม่? คุณลองใช้เบราว์เซอร์ใด
Peter Mortensen

@PeterMortensen เมื่อฉันทดสอบเมื่อ 9 ปีที่แล้วคือบน firefox, chrome และ ie :)
Saikios

329

และคุณสามารถใช้แอตทริบิวต์ออโต้โฟกัสของ HTML5 ได้ (ใช้ได้กับทุกเบราว์เซอร์ปัจจุบันยกเว้น IE9 ขึ้นไป) เรียกสคริปต์ของคุณก็ต่อเมื่อเป็น IE9 ขึ้นไปหรือเบราว์เซอร์อื่นรุ่นเก่ากว่า

<input type="text" name="fname" autofocus>



4
นี่คือตารางความเข้ากันได้สำหรับออโต้โฟกัส : caniuse.com/#feat=autofocus
Oreo

5

นี่เป็นหนึ่งในปัญหาทั่วไปของ IE และการแก้ไขปัญหานี้ทำได้ง่าย เพิ่ม. โฟกัส () สองครั้งในอินพุต

แก้ไข: -

function FocusOnInput() {
    var element = document.getElementById('txtContactMobileNo');
    element.focus();
    setTimeout(function () { element.focus(); }, 1);
}

และเรียกใช้ FocusOnInput () บน $ (document) .ready (function () {..... };


2

คุณยังสามารถใช้:

<body onload="focusOnInput()">
    <form name="passwordForm" action="verify.php" method="post">
        <input name="passwordInput" type="password" />
    </form>
</body>

จากนั้นใน JavaScript ของคุณ:

function focusOnInput() {
    document.forms["passwordForm"]["passwordInput"].focus();
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.