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

[resolvido] Text Field - Duas Dúvidas!


Notax

Pergunta

E aí pessoal, beleza?

Seguinte, duas dúvidas com relação aos dois textfield tais quais abaixo:

<input name="txtdd" type="text" id="txtdd" size="2" maxlength="2">

<input name="txtmm" type="text" id="txtmm" size="2" maxlength="2">

1) Como eu faço para que quando ao preencher o campo "txtdd" com dois caracteres ele passe o foco automaticamente para o campo "txtmm"?

2) Como eu faço para "proibir" o uso de . (ponto final) dentro destes textfield? Existiria alguma forma de quando o (.) ser digitado automaticamente já ser excluído? Queria evitar trabalhar com alerts nesse caso... Alguma sugestão?

Pessoal, por hoje eram essas as minhas dúvidas! tomara que alguém possa me dar uma atenção aí...

valeu a força.

Notax

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Fala Fercosmig... valeu aí... mas olha só no caso da questão dois... ou seja para proibir o uso de (.) aquele script ali elimina o uso de qualquer outra tecla que não seja números... mas no meu caso eu preciso permitir o uso da vírgula (,)

daí como eu posso fazer?

Link para o comentário
Compartilhar em outros sites

  • 0

http://pt.wikipedia.org/wiki/ASCII => virgula = 44

<script language="javascript">
function blokletras(objEvent)
{
  var iKeyCode;  
  iKeyCode = objEvent.keyCode;  
  if((iKeyCode>=48 && iKeyCode<=57) || (iKeyCode = 44)) return true;
  return false;
}
</script>
<input type="text" name="numero" onkeypress="return blokletras(event)">

Link para o comentário
Compartilhar em outros sites

  • 0

Ok amigão... valeu mais uma vez! podemos ir pro caso prático? porque to tentando aqui e não to conseguindo!

assim ó, nesse trecho aqui... onde está sendo setado o textfield:

<input name="txtdd" type="text" id="txtdd" onKeyUp="return autoTab(this, 5, event);" size="2" maxlength="2">

o que significa essa parte aqui?

onKeyUp="return autoTab(this, 5, event);"

mais especificamente essa aqui: (this, 5, event)

é pra onde vai o foco depois de preenchido os dois caracteres?

Link para o comentário
Compartilhar em outros sites

  • 0

Veja se é isto que você quer:

<script LANGUAGE="JavaScript">
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}

function blokletras(objEvent) 
{
  var iKeyCode;   
  iKeyCode = objEvent.keyCode;

  if(iKeyCode == 46) return false;
  return true;
}
</script>

<form name="form">

<input name="txtdd" type="text" id="txtdd" onKeyUp="return autoTab(this, 2, event);" size="2" maxlength="2"> 
<input name="txtmm" type="text" id="txtmm" size="2" maxlength="2" onkeypress="return blokletras(event)">
</form>

o que significa essa parte aqui?

onKeyUp="return autoTab(this, 5, event);"

mais especificamente essa aqui: (this, 5, event)

this = é o objeto (input)

5 = é o parametro que define quantos caracteres tem o campo, no caso seriam 2, para passar para o proximo campo

event = é o evento, através dele voce pode descobrir qual o codigo ASCII da tecla pressionada

é pra onde vai o foco depois de preenchido os dois caracteres?

Não, o evento onKeyUp significa que assim que voce soltar a tecla pressionada, ele será acionado.

Link para o comentário
Compartilhar em outros sites

  • 0

mais bah minha amiga! matou a pau! Isso aí saiu do nível da ajuda e entrou no nível da aula! Putz muito bom mesmo... valeu andreia.

Agora se não for muito abuso... me surgiu duas duvidazinhas básicas:

1)por que aparece o Netscape aqui: var isNN = (navigator.appName.indexOf("Netscape")!=-1);?

2)a parte que bloqueia só o "." é essa aqui né?

function blokletras(objEvent) 
{
  var iKeyCode;   
  iKeyCode = objEvent.keyCode;

  if(iKeyCode == 46) return false;
  return true;
}

3) daí pra chamar essa parte específica basta setar o input assim: onkeypress="return blokletras(event)"?

valeu Andreia mais uma vez por essa preciosa AULA!

Link para o comentário
Compartilhar em outros sites

  • 0

shuhauhsuahs magina rapaz!!

1)por que aparece o Netscape aqui: var isNN = (navigator.appName.indexOf("Netscape")!=-1);?

não entendi sua duvida, isso aparece na pagina??

2)a parte que bloqueia só o "." é essa aqui né?

A função é esta, mas a linha que faz o bloqueio é a do IF:

if(iKeyCode == 46) return false;

Eu deu uma melhorada no codigo pra aceitar no FF tb:

<script LANGUAGE="JavaScript">
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode;
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}

function blokletras(caracter) {
var tecla;

 if(window.event) // Internet Explorer
  tecla = event.keyCode;

 else // Firefox
   tecla = caracter.which;


 if(tecla == 46)
  return false;

 else return true;
}
</script>

<form name="form">

<input name="txtdd" type="text" id="txtdd" onKeyUp="return autoTab(this, 2, event);" size="2" maxlength="2"> 
<input name="txtmm" type="text" id="txtmm" size="2" maxlength="2" onKeyPress="return blokletras(event)">
</form>

Depois mude o nome da funcao porque blokletras não condiz muito.... talvez um bloqueiaPonto rssss

Essa funcao de bloquear pode aproveitar pra qualquer caracter que você quiser, basta mudar o codigo ASCII:

if(tecla == AQUI VEM O CODIGO ASCII DA TECLA QUE DESEJA BLOQUEAR)
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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...