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

(Resolvido) Utilizando a tecla ENTER


jpalma

Pergunta

Boa tarde

Alterei um programa para mudar de campo quando pressiono a tecla ENTER.

Nos campos tipo TEXT e TEXTAREA esta funcionando normalmente.

Porem, quando o foco esta sobre o link "a href" e pressiono a tecla ENTER o foco passa para o proximo link,não executando a função vinculada ao evento ONCLICK.

Quando retiro da função "tecla_enter()" a linha "event.keyCode = 9;" funciona normalmente para os link, porem não funciona para os demais campos.

Segue abaixo o codigo que utilizo.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0050)http://www.virtualassociados.com.br/ev3/index0.htm -->
<HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.3790.2759" name=GENERATOR>

<link href="loginestilo.css" rel="stylesheet" type="text/css">

<script language="JavaScript" type="text/javascript">

function validar(operacao)
{
 if (operacao == 'Incluir' || operacao == 'Alterar')
 {
  var nome_janela = "janela";
  var caracteristicas = "width=320,height=160,top=200,left=320,resizable=no,scrollbars=no,toolbar=no,location=no,menubar=no,status=no";
  janela_atualiza = window.open("", nome_janela, caracteristicas);
  document.localidade.btatualiza.value=operacao;
  document.localidade.submit();
  janela_atualiza.focus();
 }
 else if (operacao == 'Excluir')
 {
  if(confirm("Confirma Exclusão ?"))
  {
   var nome_janela = "janela";
   var caracteristicas = "width=320,height=160,top=200,left=320,resizable=no,scrollbars=no,toolbar=no,location=no,menubar=no,status=no";
   janela_atualiza = window.open("", nome_janela, caracteristicas);
   document.localidade.btatualiza.value=operacao;
   document.localidade.submit();
   janela_atualiza.focus();

   <!-- redireciona pra essa página se clicar em ok -->
  }
  else
  {
   window.location.href="localidadelogin.php?sessao_usuario=usuario";

   <!-- redireciona pra essa página se clicar em cancelar -->
  }
 }
}


function tecla_enter()
{
 if (event.keyCode == 9 || event.keyCode == 13)
 {
  event.keyCode = 9;
  return true; // Tab e Enter
 }
}

</SCRIPT>

</HEAD>
<BODY text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0 scroll=auto marginheight="0" marginwidth="0"
onLoad="document.localidade.loc_descricao.focus()"
onKeyDown="java script:return tecla_enter();">

<form name="localidade" method="post" action="localidadeprincipal.php" target="janela" class="formulario_principal"><br/>

<label class="la_descricao">Descrição (*)</label>
<input type="text" name="loc_descricao" class="in_descricao" value="<?=$loc_descricao?>" size="40" maxlength="40">

<label class="la_observacao">Observação</label>
<TEXTAREA NAME="loc_observacao" class="in_observacao" ROWS="4" COLS="40" WRAP="SOFT"><?=$loc_observacao?></TEXTAREA>

<label class="la_inclusao">Inclusao</label>
<input type="text" name="loc_inclusao" class="in_inclusao" value="<?=$loc_inclusao?>" size="10" maxlength="10" readonly>

<a href="#" onClick="validar('Incluir');"><img src="imagens/botaoincluircadastro.gif" alt="Incluir Localidade" width="125" height="65" border="0" class="botao_principal"></a>
<a href="#" onClick="limpar();"><img src="imagens/botaolimparcadastro.gif" alt="Limpar Campos" width="125" height="65" border="0" class="botao_principal"></a>
<a href="localidadelogin.php?sessao_usuario=<?=$nome_usuario?>"><img src="imagens/botaoretornarcadastro.gif" alt="Retorna a Tela Cadastro de Localidade" width="125" height="65" border="0" class="botao_principal"></a>

</form>
</BODY>

grato

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Ué ?¿?¿?¿???¿¿

Alterei um programa para mudar de campo quando pressiono a tecla ENTER.

O código, quando pressionar enter vai mudar de foco. Beleza.

Porem, quando o foco esta sobre o link "a href" e pressiono a tecla ENTER o foco passa para o proximo link,não executando a função vinculada ao evento ONCLICK.

que coisa contraditória :blink:

Lógico que ele vai pro próximo link, é o que o programa faz :blink:

Como ele vai executar uma função onclick, se não foi clicado nada??!?!?!?!?

Jpalma presstenção rapaiz....

<a href="#" onkeypress="funcao()'; return false">Enter em mim</a>

Coloque o onkeypress no link.

Kelabrasssssss

Link para o comentário
Compartilhar em outros sites

  • 0
Ué ?¿?¿?¿???¿¿

Alterei um programa para mudar de campo quando pressiono a tecla ENTER.

O código, quando pressionar enter vai mudar de foco. Beleza.

Porem, quando o foco esta sobre o link "a href" e pressiono a tecla ENTER o foco passa para o proximo link,não executando a função vinculada ao evento ONCLICK.

que coisa contraditória :blink:

Lógico que ele vai pro próximo link, é o que o programa faz :blink:

Como ele vai executar uma função onclick, se não foi clicado nada??!?!?!?!?

Jpalma presstenção rapaiz....

<a href="#" onkeypress="funcao()'; return false">Enter em mim</a>

Coloque o onkeypress no link.

Kelabrasssssss

Colega

Sua sugestão não deu certo. Quando o elemento esta com o FOCO tanto faz pressionar a tecla ENTER como utilizar o mouse

Conforme informei anteriormente quando retiro da função "tecla_enter()" a linha "event.keyCode = 9;" funciona normalmente para os link, ou seja executa a função, porem não funciona para os demais campos, ou seja, não passa para o próximo campo após o ENTER.

ps: sou novo neste forun e gostaria de saber o significado de MOVIDO, pois no meu post esta assim.

grato

Link para o comentário
Compartilhar em outros sites

  • 0
Sua sugestão não deu certo. Quando o elemento esta com o FOCO tanto faz pressionar a tecla ENTER como utilizar o mouse

Tanto faz vírgula =s .

Nesse caso você muda o valor da tecla digitada pela função tecla_enter(), então você não está dando um enter no link, você está dando um tab.

Quando você remove o event.keyCode=9, você evita mudar a tecla pressionada, então o link funciona corretamente.

A minha solução foi meio estúpida, não prestei atenção nisso. Não é uma boa maneira esta que está fazendo, você faz, com esse código, que TUDO no documento quando teclado enter funcione de uma certa forma. Ta ae a grande dificuldade que está tendo pra comprovar.

Primeiro, retire aquele bando de instruções na tag body, aquilo lá não existe. Formate com css.

Pegue apenas os elementos que quer fazer a função "tecla_enter" funcionar:

window.onload=function(){
document.localidade.loc_descricao.focus()

var ele=document.getElementsByTagName("form")[0].childNodes
    
      for(x=0; x<ele.length; x++)
          if(ele[x].tagName=="INPUT" || ele[x].tagName=="TEXTAREA")
          ele[x].onkeydown=tecla_enter

}

Outra coisa, eu acho que deveria deixar os links fora da sessão do formulário. Ali não é lugar daqueles links. É uma sugestão.

O código que passei pode ir depois da função "tecla_enter", e não irá funcionar caso não tire todas as declarações que botou na tag body. Ela tem que ficar assim: "<body>" SÓ!

Bom, boa sorte. Se ainda não funcionar posta de novo, vamos solucionar essa bagaça.

Kelabrassssssssssss

[edit]

Desculpe esqueci, seu tópico foi movido porque deve ter postado em alguma área que não era do assunto. Como sua dúvida é sobre javascript, então deve ser postada na área de javascript.

Editado por KaKarotto
Link para o comentário
Compartilhar em outros sites

  • 0

Colega obrigado deu certo.

sds

Sua sugestão não deu certo. Quando o elemento esta com o FOCO tanto faz pressionar a tecla ENTER como utilizar o mouse

Tanto faz vírgula =s .

Nesse caso você muda o valor da tecla digitada pela função tecla_enter(), então você não está dando um enter no link, você está dando um tab.

Quando você remove o event.keyCode=9, você evita mudar a tecla pressionada, então o link funciona corretamente.

A minha solução foi meio estúpida, não prestei atenção nisso. Não é uma boa maneira esta que está fazendo, você faz, com esse código, que TUDO no documento quando teclado enter funcione de uma certa forma. Ta ae a grande dificuldade que está tendo pra comprovar.

Primeiro, retire aquele bando de instruções na tag body, aquilo lá não existe. Formate com css.

Pegue apenas os elementos que quer fazer a função "tecla_enter" funcionar:

window.onload=function(){
document.localidade.loc_descricao.focus()

var ele=document.getElementsByTagName("form")[0].childNodes
    
      for(x=0; x<ele.length; x++)
          if(ele[x].tagName=="INPUT" || ele[x].tagName=="TEXTAREA")
          ele[x].onkeydown=tecla_enter

}

Outra coisa, eu acho que deveria deixar os links fora da sessão do formulário. Ali não é lugar daqueles links. É uma sugestão.

O código que passei pode ir depois da função "tecla_enter", e não irá funcionar caso não tire todas as declarações que botou na tag body. Ela tem que ficar assim: "<body>" SÓ!

Bom, boa sorte. Se ainda não funcionar posta de novo, vamos solucionar essa bagaça.

Kelabrassssssssssss

[edit]

Desculpe esqueci, seu tópico foi movido porque deve ter postado em alguma área que não era do assunto. Como sua dúvida é sobre javascript, então deve ser postada na área de javascript.

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...