Questo è probabilmente molto semplice, ma qualcuno potrebbe dirmi come far lampeggiare il cursore su una casella di testo al caricamento della pagina?
Questo è probabilmente molto semplice, ma qualcuno potrebbe dirmi come far lampeggiare il cursore su una casella di testo al caricamento della pagina?
Risposte:
Imposta lo stato attivo sul primo campo di testo:
$("input:text:visible:first").focus();
Questo fa anche il primo campo di testo, ma puoi cambiare [0] in un altro indice:
$('input[@type="text"]')[0].focus();
Oppure puoi usare l'ID:
$("#someTextBox").focus();
$('input[type="text"]').get(0).focus();
... ha funzionato per me
È possibile utilizzare HTML5autofocus
per questo. Non hai bisogno di jQuery o di altri JavaScript.
<input type="text" name="some_field" autofocus>
Nota che non funzionerà su IE9 e versioni precedenti.
Sicuro:
<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>
Perché tutti usano jQuery per qualcosa di semplice come questo.
<body OnLoad="document.myform.mytextfield.focus();">
Pensa alla tua interfaccia utente prima di farlo. Suppongo (anche se nessuna delle risposte lo ha detto) che lo farai quando il documento viene caricato utilizzando la ready()
funzione di jQuery . Se un utente si è già concentrato su un elemento diverso prima che il documento sia stato caricato (il che è perfettamente possibile), è estremamente irritante per loro che la messa a fuoco venga rubata.
Puoi verificarlo aggiungendo onfocus
attributi in ciascuno dei tuoi <input>
elementi per registrare se l'utente si è già concentrato su un campo modulo e quindi non rubare lo stato attivo se hanno:
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
attributo all'elemento input?
Ci scusiamo per aver posto una vecchia domanda. Ho trovato questo tramite Google.
Vale anche la pena notare che è possibile utilizzare più di un selettore, quindi è possibile scegliere come target qualsiasi elemento del modulo e non solo un tipo specifico.
per esempio.
$('#myform input,#myform textarea').first().focus();
Questo focalizzerà il primo input o textarea che trova, e ovviamente puoi anche aggiungere altri selettori nel mix. Hnady se non puoi essere certo che uno specifico tipo di elemento sia il primo, o se vuoi qualcosa di un po 'generale / riutilizzabile.
Questo è ciò che preferisco usare:
<script type="text/javascript">
$(document).ready(function () {
$("#fieldID").focus();
});
</script>
autofocus
attributo fornito da HTML5
posto dopo input
<script type="text/javascript">document.formname.inputname.focus();</script>
Il modo più semplice e semplice per raggiungere questo obiettivo
$('#button').on('click', function () {
$('.form-group input[type="text"]').attr('autofocus', 'true');
});
La $('#myTextBox').focus()
sola riga non posizionerà il cursore nella casella di testo, invece usa:
$('#myTextBox:text:visible:first').focus();