Wie kann man den Fokus automatisch auf ein Textfeld setzen, wenn eine Webseite geladen wird?
Gibt es dafür ein HTML-Tag oder muss es per Javascript geschehen?
Wie kann man den Fokus automatisch auf ein Textfeld setzen, wenn eine Webseite geladen wird?
Gibt es dafür ein HTML-Tag oder muss es per Javascript geschehen?
Wenn Sie Jquery verwenden:
$(function() {
$("#Box1").focus();
});
oder Prototyp:
Event.observe(window, 'load', function() {
$("Box1").focus();
});
oder einfaches Javascript:
window.onload = function() {
document.getElementById("Box1").focus();
};
aber denken Sie daran, dass dies andere onload-Handler ersetzen wird, so schauen Sie addLoadEvent() in Google für einen sicheren Weg, um onload-Handler anhängen, anstatt zu ersetzen.
In HTML gibt es eine autofocus
Attribut für alle Formularfelder. Es gibt ein gutes Tutorial dazu in Eintauchen in HTML 5 . Leider ist es derzeit nicht unterstützt bei IE-Versionen kleiner als 10.
Das HTML 5-Attribut zu verwenden und auf eine JS-Option zurückzugreifen:
<input id="my-input" autofocus="autofocus" />
<script>
if (!("autofocus" in document.createElement("input"))) {
document.getElementById("my-input").focus();
}
</script>
Es sind keine jQuery-, Onload- oder Event-Handler erforderlich, da sich das JS unterhalb des HTML-Elements befindet.
Edit: ein weiterer Vorteil ist, dass es mit deaktiviertem JavaScript in einigen Browsern funktioniert und Sie das JavaScript entfernen können, wenn Sie ältere Browser nicht unterstützen wollen.
Edit 2: Firefox 4 unterstützt jetzt die autofocus
Attribut, so dass der IE keine Unterstützung bietet.
Was hat es mit dem autofocus="aufofocus"
? Alle von Ihnen angegebenen Links sagen nur, dass das Attribut hinzugefügt werden soll: autofocus
.
In den Tagen von XHTML und HTML4 war es üblich, die attribute="value"
für boolesche Attribute. HTML5 kam mit der "leeren Attributsyntax" daher und wir ließen die Redundanz fallen. Jetzt können wir <input checked disabled autofocus data-something>
Sie müssen Javascript verwenden:
<BODY onLoad="document.getElementById('myButton').focus();">
@Ben weist darauf hin, dass Sie keine Ereignis-Handler auf diese Weise hinzufügen sollten. Das ist zwar eine andere Frage, aber er empfiehlt, diese Funktion zu verwenden:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
Dann rufen Sie addLoadEvent auf Ihrer Seite auf und verweisen auf eine Funktion, die den Fokus auf das gewünschte Textfeld setzt.
Sie können es leicht tun, indem Sie jquery auf diese Weise verwenden:
<script type="text/javascript">
$(document).ready(function () {
$("#myTextBoxId").focus();
});
</script>
durch Aufruf dieser Funktion in $(document).ready()
.
Das bedeutet, dass diese Funktion ausgeführt wird, wenn das DOM fertig ist.
Weitere Informationen über die Funktion READY finden Sie unter : http://api.jquery.com/ready/
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
blog.jerodsanto.net/2009/05/jquery-set-mouse-focus-on-page-load