Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Cursor no início do input quando der foco


ESerra

Pergunta

Seguinte, preciso saber se existe uma maneira de colocar o cursor no início da linha do input quando já existe alguma coisa escrita nele, pois apareceu um problema, tenho que usar uma máscara assim: 0000/00/00, só que quando dá o foco no input o cursor vai lá pro final (0000/00/00 |), até agora não encontrei nada (até encontrei, mas não funcinou :unsure: ) que faça ele ficar no começo (| 0000/00/00), pois a máscara conforme o cara vai digitando já vão sendo substituindo os zeros pelos números, mas toda hora que der foco ter que apertar o Home fica realmente chato...

grato.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Penso que o SELECT não serve para o caso...

Agora inclusive me veio outra coisa a cabeça, acho que o problema é na máscara mesmo, pois o certo é ela "aparecer" só quando o campo estiver com o foco (a menos que ele esteja preenchido, é claro), só que quando eu mando colocar os zeros, ela aparece direto, acredito que esteja havendo uma interpretação errada ai... para exemplificar: http://www.edgarserra.com/tst/

Vou dar mais uma pesquisada, se não achar nada, vai ficar com o formato: ____/__/__ que já está bom demais...

valeu

Link para o comentário
Compartilhar em outros sites

  • 0
Agora inclusive me veio outra coisa a cabeça, acho que o problema é na máscara mesmo, pois o certo é ela "aparecer" só quando o campo estiver com o foco (a menos que ele esteja preenchido, é claro), só que quando eu mando colocar os zeros, ela aparece direto, acredito que esteja havendo uma interpretação errada ai...
É isto mesmo que está ocorrendo. Experimente colocar um caracter que não seja numérico (já que este é o tipo que a função tratará) e veja que funciona. Tem um pequeno "bug" em não diferenciar o conteúdo da mascara e o caracter efetivamente digitado e que realmente fará parte do texto final.

Quanto ao posicionamento, olhando meio por cima no código em jquery.maskedinput.js, tem uma das funções (caret) que faz com que o posicionamento do cursor vá para o final do texto, quando há algum. Isto está no código, logo abaixo do comentário "//Helper Function for Caret positioning"

Talvez seja questão de alterar/corrigir o código.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Quanto ao posicionamento, olhando meio por cima no código em jquery.maskedinput.js, tem uma das funções (caret) que faz com que o posicionamento do cursor vá para o final do texto, quando há algum. Isto está no código, logo abaixo do comentário "//Helper Function for Caret positioning"

Bingo.

Particularmente essa:

if(this.setSelectionRange){
                    this.focus();
                    this.setSelectionRange(begin,end);
                }else if (this.createTextRange){
                    var range = this.createTextRange();
                    range.collapse(true);
                    range.moveEnd('character', end);
                    range.moveStart('character', begin);
                    range.select();
                }
}
É um Cross que ele usa pra mover o cursor. O primeiro para FF e o segundo pro iE. Se você quiser pode adicionar um evento onclick no campo assim:
document.getElementById("campo").onclick=function(){
var begin=0
var end=0
if(this.setSelectionRange){
                    this.focus();
                    this.setSelectionRange(begin,end);
                }else if (this.createTextRange){
                    var range = this.createTextRange();
                    range.collapse(true);
                    range.moveEnd('character', end);
                    range.moveStart('character', begin);
                    range.select();
                }
}


}

Aí na hora de clicar no formulário ele volta :P

Não sei de onde os caras do jQuery tiram esses atributos e métodos...não estão na referência...

Akeleabrasss

Link para o comentário
Compartilhar em outros sites

  • 0

Descobri o pau, quando se define o que vai preencher a máscara (placeholder) com um elemento do mesmo tipo que será permitido na máscara dá zica, se eu trocar 9999/99/99 por aaaa/aa/aa (que só vai aceitar letras) e definir o placeholder como 9, vai de beleza...

Vou notificar o criador da coisa pra isso (que eu nem sei se dá pra chamar de bug)... mas vou usar mesmo a lei do menor esforço e deixar apenas ____/__/__

Value :D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...