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 onfocusattributi 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();
autofocusattributo 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>
autofocusattributo 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();