Bloquear a tecla <ENTER> em Form

Boa tarde,

Preciso de ajuda para bloquear a tecla (ou mesmo transforma-la em um TAB) em um formulario de modo que a ação de submeter o formulario somente seja executada se o usuario acionar um dos botoes especificos para INS (+) ALT(@) ou DEL (lata de lixo).

Grato.

Nos Formulários existe a opção de colocar o Enter como Tab

Abraço

Usando a macro sc_btn_display(“nomebotao”,“on/off”) não resolveria?

Obrigado Thiago.

Mas infelizmente ainda não tenho a versão 5 do scriptcase … a minha ainda é a 4.

Tem alguma solucao, mesmo que trabalhosa, para fazer isto na versao 4?

George,

O quero evitar é que o usuario ao teclar enter antes de preencher todos os campos do formulario que o formulario não seja submetido pela acao do enter … apenas pelos botoes.

Se vc inibir os botões Insert e Update ele vai ter que teclar nos botões criados por vc.

George,

OK. mas estou querendo fazer isto sem ter que inibir os botoes originais pois são varios formularios e a faina seria muito grande pois teria que inibir os botoes, criar meus proprios botoes, incluir uma rotina em cada botão criado para que o codigo existente no onvalidate fosse executado, criar as regras de validate para cada campo, etc …

Não é isto?

Não lembro como funcionava um form na versão 4 mais acho que tabular com enter não funciona, então seu usuário nunca vai submeter um formulário com ENTER, ele vai ter que clicar em um dos botões.

Se o funcionamento não é assim, desculpa.

George,

é justamente isto … se eu conseguir bloquear a tecla ENTER o usuario será obrigado a clicar nos botoes de acao … tabular a tecla enter seria perfeito mas se conseguir bloquear o enter já resolve o meu problema.

Não tem como na versão 4 o botão ser acionado por enter, só funciona ao clicar no mesmo.

Acabei de testar usando a versão 5 e tirando o tabular com ENTER, não consigo acionar os botões teclando ENTER.

Acho que não compreendi direiro o seu post.

Teste se o seguinte código no javascript funciona, no objeto “Form” e evento “OnSubmit”

enter()

function enter()
{
var tecla=window.event.keyCode;

if (tecla==13) 
{
    event.keyCode=0;
    event.returnValue=false;
}

}

Tiago, teste feito com e sem a linha enter() antes do function enter()

Fiz outros testes e consegui obter o seguinte:

  1. No meu scriptcase4, este problema de acionar a tecla enter e o form ser submetido somente acontece se o foco estiver em um campo do tipo TEXTO (simples) e o usuario teclar o ENTER. … se o foco estiver em um campo de outro tipo como numerico, data, hora, texto com varias linhas, o enter não aciona a submissão do formulario.

  2. Consegui algum resultado, pelo menos no mozilla (nao testei em outros navegadores), incluindo o seguinte codigo no evento OnInit do Form:

echo "";

e criei um evento javascript no evento onFocus de cada campo com o seguinte:

a) no campo1:

nextfield =‘campo2’;

b) no campo2:

nextfield =‘campo1’;

Com este codigo, a tecla enter não aciona o submit do FORM e fica alternando o foco entre os 2 campos.

Não fiz nenhum teste ainda com um form com mais de 2 campos … farei ainda hoje.

tiago,

Desculpe, faltou responder no email anterior … o seu codigo de teste no evento on submit do form não funcionou …

Fiz o teste do meu codigo no evento OnInit do Form e funcionou com pelo menos 4 campos até o momento. A tecla enter não mais aciona o sunbit do formulario, fica “rodando” o focus entre os campos e o form só é realmente submetido se acionar um dos botoes de acao.