Como você define automaticamente o foco para uma caixa de texto quando uma página da web é carregada?
Existe uma tag HTML para fazer isso ou precisa ser feita via Javascript?
javascript
html
Mark Biek
fonte
fonte
Respostas:
Se você estiver usando jquery:
ou protótipo:
ou javascript simples:
embora tenha em mente que isso substituirá outros em manipuladores de carga, consulte addLoadEvent () no google para encontrar uma maneira segura de anexar manipuladores de onload em vez de substituí-los.
fonte
Em HTML, há um
autofocus
atributo para todos os campos do formulário. Há um bom tutorial sobre isso no Dive Into HTML 5 . Infelizmente, atualmente não é suportado pelas versões do IE com menos de 10.Para usar o atributo HTML 5 e retornar a uma opção JS:
Não são necessários manipuladores jQuery, onload ou evento, porque o JS está abaixo do elemento HTML.
Editar: outra vantagem é que ele funciona com o JavaScript desativado em alguns navegadores e você pode removê-lo quando não deseja oferecer suporte a navegadores mais antigos.
Edit 2: Firefox 4 agora suporta o
autofocus
atributo, deixando o IE sem suporte.fonte
autofocus="aufofocus"
? Todos os links que você forneceu apenas dizer para adicionar o atributo:autofocus
.attribute="value"
atributos booleanos. O HTML5 veio com a "sintaxe do atributo vazio" e eliminamos a redundância. Agora podemos fazer<input checked disabled autofocus data-something>
Você precisa usar o javascript:
@ Ben observa que você não deve adicionar manipuladores de eventos como este. Embora essa seja outra pergunta, ele recomenda que você use esta função:
Em seguida, faça uma chamada para addLoadEvent na sua página e faça referência a uma função que define o foco para a caixa de texto desejada.
fonte
Basta escrever o foco automático no campo de texto. Isso é simples e funciona assim:
Espero que isto ajude.
fonte
Você pode fazer isso facilmente usando jquery desta maneira:
chamando esta função em
$(document).ready()
.Isso significa que essa função será executada quando o DOM estiver pronto.
Para mais informações sobre a função READY, consulte: http://api.jquery.com/ready/
fonte
Usando plain vanilla html e javascript
Para aqueles que usam o framework .net e asp.net 2.0 ou superior, é trivial. Se você estiver usando versões mais antigas da estrutura, precisará escrever algum javascript semelhante ao acima.
No seu manipulador OnLoad (geralmente page_load, se você estiver usando o modelo de página de estoque fornecido com o visual studio), você pode usar:
C #
VB.NET
(* Nota: removi o caractere de sublinhado do nome da função que geralmente é Page_Load, pois em um bloco de código ele se recusou a renderizar corretamente! Não pude ver na documentação da marcação como obter os sublinhados para renderizar sem escape.)
Espero que isto ajude.
fonte
IMHO, a maneira 'mais limpa' de selecionar o primeiro campo de texto visível, ativado na página, é usar o jQuery e fazer algo assim:
Espero que ajude...
Obrigado...
fonte
fonte
Como conselho geral, eu recomendaria não roubar o foco da barra de endereço. ( Jeff já falou sobre isso. )
A página da Web pode levar algum tempo para carregar, o que significa que a alteração do foco pode ocorrer muito tempo após o usuário digitar o URL do pae. Então ele poderia ter mudado de idéia e voltar a digitar o URL enquanto você carrega sua página e rouba o foco para colocá-la em sua caixa de texto.
Essa é a única razão que me levou a remover o Google como minha página inicial.
Obviamente, se você controla a rede (rede local) ou se o foco é resolver um importante problema de usabilidade, esqueça tudo o que acabei de dizer :)
fonte
Eu tive um problema um pouco diferente. Eu queria
autofocus
, mas queria que oplaceholder
texto permanecesse em vários navegadores. Alguns navegadores ocultam oplaceholder
texto assim que o campo é focado, outros o mantêm. Eu tive que fazer com que os marcadores permanecessem no navegador, o que tem efeitos colaterais estranhos, ou pare de usarautofocus
.Por isso, ouvi a primeira chave digitada na tag body e redirecionei essa chave para o campo de entrada de destino. Todos os manipuladores de eventos envolvidos são mortos para manter as coisas limpas.
https://jsfiddle.net/b9chris/qLrrb93w/
fonte
É possível definir
autofocus
elementos de entradafonte
Se você estiver usando o ASP.NET, poderá usar
no código do servidor, que adicionará o JavaScript apropriado à página.
Outras estruturas do lado do servidor podem ter um método equivalente.
fonte
Use o código abaixo. Para mim está funcionando
fonte