Sayfa yüklemede bir HTML giriş kutusuna odaklanma


99

Sayfa yüklendiğinde varsayılan odağı bir giriş kutusuna ayarlamaya çalışıyorum (örnek: google). Sayfam çok basit, ancak bunu nasıl yapacağımı çözemiyorum.

Şimdiye kadar sahip olduğum şey bu:

<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>

Bu iyi çalışırken neden işe yaramıyor?

<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>

Yardım çok takdir edilmektedir :-)

Yanıtlar:


36

Bu hat:

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

aşağıdaki gibi bir id özniteliğine sahip olmalıdır :

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

Bu gerçekten girdi odağını belirleyecek mi? Hangi tarayıcıda denediniz?
Peter Mortensen

@PeterMortensen 9 yıl önce bunu test ettiğimde firefox, chrome and ie :)
Saikios

329

Ve HTML5'in otomatik odak özelliğini de kullanabilirsiniz (IE9 ve altı hariç tüm mevcut tarayıcılarda çalışır). Komut dosyanızı yalnızca IE9 veya öncesi ya da diğer tarayıcıların daha eski bir sürümü ise arayın.

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



4
İşte otomatik odaklama için bir uyumluluk tablosu : caniuse.com/#feat=autofocus
Oreo

5

Bu, IE ile ilgili yaygın sorunlardan biridir ve bunun düzeltilmesi basittir. Girişe iki kez .focus () ekleyin.

Düzeltme: -

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

Ve $ (document) .ready (function () {.....}; üzerinde FocusOnInput () öğesini çağırın;


2

Ayrıca şunları da kullanabilirsiniz:

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

Ve sonra JavaScript'inizde:

function focusOnInput() {
    document.forms["passwordForm"]["passwordInput"].focus();
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.