Ihre Frage besteht aus zwei Teilen.
1) Wie fokussiere ich eine Eingabe auf das Laden von Seiten?
Sie können das autofocus
Attribut einfach zur Eingabe hinzufügen .
<input id="myinputbox" type="text" autofocus>
Dies wird jedoch möglicherweise nicht in allen Browsern unterstützt, sodass wir Javascript verwenden können.
window.onload = function() {
var input = document.getElementById("myinputbox").focus();
}
2) Wie platziere ich den Cursor am Ende des Eingabetextes?
Hier ist eine Nicht-jQuery-Lösung mit geliehenem Code aus einer anderen SO-Antwort .
function placeCursorAtEnd() {
if (this.setSelectionRange) {
// Double the length because Opera is inconsistent about
// whether a carriage return is one character or two.
var len = this.value.length * 2;
this.setSelectionRange(len, len);
} else {
// This might work for browsers without setSelectionRange support.
this.value = this.value;
}
if (this.nodeName === "TEXTAREA") {
// This will scroll a textarea to the bottom if needed
this.scrollTop = 999999;
}
};
window.onload = function() {
var input = document.getElementById("myinputbox");
if (obj.addEventListener) {
obj.addEventListener("focus", placeCursorAtEnd, false);
} else if (obj.attachEvent) {
obj.attachEvent('onfocus', placeCursorAtEnd);
}
input.focus();
}
Hier ist ein Beispiel, wie ich dies mit jQuery erreichen würde.
<input type="text" autofocus>
<script>
$(function() {
$("[autofocus]").on("focus", function() {
if (this.setSelectionRange) {
var len = this.value.length * 2;
this.setSelectionRange(len, len);
} else {
this.value = this.value;
}
this.scrollTop = 999999;
}).focus();
});
</script>
Nur ein Kopf hoch - Sie können dies jetzt mit HTML5 ohne JavaScript für Browser tun, die dies unterstützen:
Sie möchten wahrscheinlich damit beginnen und mit JavaScript darauf aufbauen, um älteren Browsern einen Fallback zu bieten.
quelle
quelle
quelle
Eine tragbare Möglichkeit hierfür ist die Verwendung einer benutzerdefinierten Funktion (zur Behandlung von Browserunterschieden) wie dieser .
Richten Sie dann einen Handler für das
onload
am Ende Ihres<body>
Tags ein, wie Jessegavin schrieb:quelle
Funktioniert gut...
quelle
sehr einfache einzeilige Lösung:
quelle
Das funktioniert gut für mich:
fff ist eine globale Variable, deren Name absolut irrelevant ist und deren Ziel es ist, das generische Onload-Ereignis zu stoppen, um den Fokus in dieser Eingabe zu erzwingen.
Von: http://webreflection.blogspot.com.br/2009/06/inputfocus-something-really-annoying.html
quelle
Wenn Sie aus irgendeinem Grund nicht zum BODY-Tag hinzufügen können, können Sie dies NACH dem Formular hinzufügen:
quelle
Versuchen:
Javascript Pure:
Jquery:
quelle
Fügen Sie dies oben auf Ihrem js hinzu
Oder zu HTML
quelle