Botão no form equivalente ao ENTER

(bdinardi) #1

Como fazer para que, ao teclar ENTER, um dos botões da tela seja acionado (no caso de form de controle, o OK, no caso de um form de atualização, o botão de atualizar, no caso de um form de inclusão, o botão de incluir, etc…) ?
Alguém sabe me dizer?

(system) #2

isto teria que ser em javascript.

mas uma ideia, faz isto usando os eventos ajax, a pessoa ao sair do campo, aparece ou nao o botao que vc quer.

(bdinardi) #3

A questão é que não pode ser usado o evento ‘sair do campo’, porque o ENTER vai ser teclado antes do foco sair do campo.
Imagine uma tela de login: o usuário informa a identificação, depois a senha e tecla ENTER enquanto o cursor ainda está no campo senha.
A opção seria usar o evento ‘onkeypress’ no campo senha (em javascript), verificando a cada tecla pressionada se é um ENTER, e se for, forçar um submit da página.
O problema é que não existe o evento ‘onkeypress’ na lista de eventos do objeto no ScriptCase.
Sei que se o botão OK for criado como o ENTER funciona da forma que eu quero!
Mas o outro problema é que o ScriptCase cria o botão como nos formulários de controle e é por isso que não funciona.
Continuo pesquisando e realmente acho que a solução vai ser com javascript.
Se alguém matar essa antes, por favor avise.

(bdinardi) #4

Continuo investigando, mas já tenho uma informação importante:

O ENTER funciona (V3 e V4) quando o esquema utilizado no form utiliza o conjunto de botões ‘scriptcase’. Tentei alguns outros padrões de botões e não funciona.

Na V2 funcionava idependentemente do tipo de botão.

Quando chegar a uma conclusão definitiva eu aviso.

Por enquanto, consegui fazer funcionar dessa forma.

(system) #5

Tive o mesmo problema, mas percebi que ele só ocorria em certos esquemas de visualização… O scriptcase4_lime foi um deles. Troquei pra outro e funcionou normalmente, enter = submit.

(Rodrigo Lins) #6

Boa Tarde,

Pelo que observei o problema está no tipo de botão utilizado, se for utilizado um botão do tipo imagem, por exemplo, o ENTER funciona, porém, quando utiliza um botão do tipo texto ele não funciona…

Rodrigo Lins.

(system) #7

Rodrigo,

Eu tive esse problema com o botão padrão (OK) das aplicações (formulário e controle), dependendo do esquema de visualização. Quando eu crio uma aplicação usando o sc4_lime por exemplo, o “enter” não realiza submit no formulário. O simples fato de trocar o esquema pra sc3_blue ou sc5_silver resolve…

Será que isso está acontecendo só aqui ou mais alguém teve esse mesmo problema? Até agora percebi isso só no esquema sc4_lime.

Robson

(Júlia Garbossa) #8

Olha após fazer o teste que vc disse, que no esquema SC_3 blue, realmente funciona… No esquema sc_4 Plain, o enter não funciona… Também estou a procura da solução, se alguém achar por favor nos comuniquem.

(system) #9

Júlia,

O motivo do problema é exatamente o que o Rodrigo descreveu…
Nos esquemas onde são utilizados botões, o “enter” não funciona. Já naqueles onde são utilizadas imagens o enter funciona normalmente:

SC4_Lime (Enter não funciona… type=“button”)

<input id="sub_form_b" onclick="nm_atualiza('alterar'); return false;; return false" class="scButton_default" value="Ok" title="Confirmar dados" type="button">

SC3_Blue (Enter funciona… type=“image”)

<input src="/scriptcase/app/DPF_interno/_lib/img/nm_scriptcase3_blue_bok.gif" id="sub_form_b" onclick="nm_atualiza('alterar'); return false;; return false" title="Confirmar dados" style="vertical-align: bottom;" type="image">

Uma solução é alterar os botões do esquema desejado (no editor de esquemas). Na verdade não dá pra editar, tem que criar um novo (com base no esquema desejado) e escolher outro conjunto de botões (algum que utilize imagens), e depois alterar o esquema nas aplicações desejadas.

Outra solução (que acho mais simples e rápida) é esconder o botão original da barra de ferramentas e criar um novo botão javascript do tipo imagem, que execute a função desejada…

ex:

nm_atualiza('alterar'); 
return false;

Assim o “enter” funciona direitinho em todos os esquemas…

Att.
Robson