Eu encontrei um problema muito difícil hoje. Quando eu estava fazendo alguma verificação das caixas de entrada, a lógica de negócios do meu projeto era que, quando selecionei uma opção específica de uma seleção, uma caixa de entrada de entrada foi exibida para o usuário inserir coisas. No entanto, se o usuário não fizer nada, uma caixa de aviso deverá aparecer para o usuário inserir. Após a entrada, eu ocultaria a entrada.
Portanto, surge o seguinte problema. Quando a caixa de entrada de entrada é exibida, o foco precisa ser obtido automaticamente. Neste momento, eu uso
A cópia do código é a seguinte:
document.getElementById ('id'). focus ();
Bem, eu tentei e funcionou muito bem. Eu não pude deixar de me sentir feliz e fiz isso!
Mas os cálculos não são tão bons quanto os cálculos humanos. Quando eu estava testando com o Firefox, acabou. Era fácil de usar quando exibi a entrada pela primeira vez, mas quando fechei a caixa de lembrete de alerta, a entrada não conseguiu o foco.!
O problema é complicado e não sei por quê. Então, verifiquei as respostas dos mestres na internet, encontrei o seguinte truque e tentei, e foi realmente útil!
Após alerta, o original
A cópia do código é a seguinte:
document.getElementByidx ('id'). focus ();
Mudar para
A cópia do código é a seguinte:
window.setTimeout (function () {document.getElementById ('id'). focus ();}, 0);
Bom, problema resolvido!
Settimeout refere -se à execução da expressão anterior após atrasar o tempo especificado após o carregamento. Obviamente, aqui está a execução da função depois de atrasar 0ms.
Quando acabei de resolver esse problema, ainda não sei por que ele pode ser resolvido sob o Firefox. Se algum grande Deus souber, deixarei uma mensagem para deixar os alunos do final aprenderem, estou muito agradecido!