Jest to prawdopodobnie bardzo proste, ale czy ktoś mógłby mi powiedzieć, jak sprawić, by kursor migał w polu tekstowym przy ładowaniu strony?
Jest to prawdopodobnie bardzo proste, ale czy ktoś mógłby mi powiedzieć, jak sprawić, by kursor migał w polu tekstowym przy ładowaniu strony?
Odpowiedzi:
Ustaw fokus na pierwszym polu tekstowym:
$("input:text:visible:first").focus();
Robi to również pierwsze pole tekstowe, ale możesz zmienić [0] na inny indeks:
$('input[@type="text"]')[0].focus();
Lub możesz użyć identyfikatora:
$("#someTextBox").focus();
$('input[type="text"]').get(0).focus();
... pracował dla mnie
Możesz do tego użyć HTML5autofocus
. Nie potrzebujesz jQuery ani innego JavaScript.
<input type="text" name="some_field" autofocus>
Uwaga: to nie będzie działać na IE9 i niższych wersjach.
Pewnie:
<head>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("#myTextBox").focus();
});
</script>
</head>
<body>
<input type="text" id="myTextBox">
</body>
Dlaczego wszyscy używają jQuery do czegoś tak prostego?
<body OnLoad="document.myform.mytextfield.focus();">
Zanim to zrobisz, pomyśl o interfejsie użytkownika. Zakładam (choć żadna odpowiedź nie powiedziała), że zrobisz to, gdy dokument zostanie załadowany przy użyciu ready()
funkcji jQuery . Jeśli użytkownik skupił się już na innym elemencie przed załadowaniem dokumentu (co jest całkowicie możliwe), niezwykle denerwujące jest dla niego skradzienie fokusa.
Możesz to sprawdzić, dodając onfocus
atrybuty do każdego <input>
elementu, aby zarejestrować, czy użytkownik już skupił się na polu formularza, a następnie nie kradnąc fokusa, jeśli:
var anyFieldReceivedFocus = false;
function fieldReceivedFocus() {
anyFieldReceivedFocus = true;
}
function focusFirstField() {
if (!anyFieldReceivedFocus) {
// Do jQuery focus stuff
}
}
<input type="text" onfocus="fieldReceivedFocus()" name="one">
<input type="text" onfocus="fieldReceivedFocus()" name="two">
HTML:
<input id="search" size="10" />
jQuery:
$("#search").focus();
autofocus
atrybut do elementu wejściowego?
Przepraszam, że wpadłem na stare pytanie. Znalazłem to przez Google.
Warto również zauważyć, że można użyć więcej niż jednego selektora, dzięki czemu można kierować na dowolny element formularza, a nie tylko jeden określony typ.
na przykład.
$('#myform input,#myform textarea').first().focus();
Spowoduje to skupienie pierwszego znalezionego tekstu lub obszaru tekstowego i oczywiście możesz dodać także inne selektory do miksu. Hnady, jeśli nie możesz być pewien, że określony typ elementu jest pierwszy, lub jeśli chcesz czegoś nieco ogólnego / wielokrotnego użytku.
Tego wolę używać:
<script type="text/javascript">
$(document).ready(function () {
$("#fieldID").focus();
});
</script>
autofocus
atrybutu dostarczonego przez HTML5
miejsce po wejściu
<script type="text/javascript">document.formname.inputname.focus();</script>
Najprostszy i najłatwiejszy sposób na osiągnięcie tego
$('#button').on('click', function () {
$('.form-group input[type="text"]').attr('autofocus', 'true');
});
Sama linia $('#myTextBox').focus()
nie umieści kursora w polu tekstowym, zamiast tego użyj:
$('#myTextBox:text:visible:first').focus();