Autor Tópico: [RESOLVIDO] Ajuda com submit via enter em form controle  (Lida 6900 vezes)

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
[RESOLVIDO] Ajuda com submit via enter em form controle
« Online: Maio 30, 2012, 11:41:48 pm »
Pessoal, tem algum jeito de dar um submit no form controle através do enter no ultimo campo? Pesquisei aqui mas só achei um tópico antigo e sem resposta.

Já tentei de várias formas e não consegui.

Agradeço a ajuda.

Rodrigo
« Última modificação: Junho 28, 2012, 11:13:38 am por Bernhard »
Rodrigo Araújo

Cleyton Euler

  • Expert
  • *****
  • Mensagens: 1149
    • Associação de Usuários Scriptcase
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #1 Online: Maio 31, 2012, 10:45:50 am »
Rapaz, vou postar uma meia ajuda, rsrsrs.

Faço isso com jQuery em meus projetos que não são feitos em SC.
      
$("#id_campo").focus(function(){

                $(this).keypress(function(e){
         
         var interacao = $(this).val();

         if(e.keyCode == 13 && interacao == "")  // Se ao teclar enter o campo for vazio, não faz nada.
         {
            e.preventDefault();            
         }
         
         if(e.keyCode == 13 && interacao != "") // Se ao teclar enter o campo não for vazio, chama uma função
         {
                 // Aqui a função que chama o submit.
         }
      
      });
});

Nunca tentei usar jQuery em aplicações SC. Mas o Haroldo já postou exemplos aqui no fórum.
Associação de Usuários Scriptcase
http://www.auscriptcase.com.br

Consultoria Scriptcase Versão 5
http://www.infinitusweb.com.br

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #2 Online: Maio 31, 2012, 10:50:23 am »
Cleyton, obrigado pela ajuda.
Na verdade tenho que saber como implementar seu código no sc, conhecimento zero no assunto. kkkk
Vou pesquisar.

Se o Haroldo passar por aqui vou ver se ele me dá uma forcinha tb. Vi num post dele que ele usa leitor de barras com form controle, é o mesmo esquema que quero implementar.

Obrigado!
Rodrigo
Rodrigo Araújo

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #3 Online: Junho 02, 2012, 03:59:14 pm »
Mais ninguém?
Rodrigo Araújo

Haroldo

  • Expert
  • *****
  • Mensagens: 6276
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Ajuda com submit via enter em form controle
« Responder #4 Online: Junho 02, 2012, 07:59:45 pm »
no evento ajax  onchange ou onblur do último campo já tentou usar :

sc_ajax_javascript('nm_atualiza', array("alterar"));

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #5 Online: Junho 02, 2012, 10:56:40 pm »
no evento ajax  onchange ou onblur do último campo já tentou usar :

sc_ajax_javascript('nm_atualiza', array("alterar"));

Haroldo obrigado pela dica! Foi muito útil.
Já funcionou a parte da gravação.
Só um detalhe:
Usando a tecla tab no último campo, o form controle grava o registro e zera os campos
Usando enter o registro é gravado, mas os campos não são zerados enquanto eu permanecer na página. Se eu sair com um simples alt+tab e voltar os campos são limpos, não entendi porque.

O form é bem simples, 2 campos apenas, código e valor.

No onValidateSuccess, coloquei:
$sql = "INSERT INTO teste (cod, val) VALUES ('{produto}', '{valor}')";
sc_exec_sql($sql);
{produto}="";
{valor}="";
sc_redir(control_digitacao_rapida_pedido);

No onLoad:
sc_set_focus('produto'); (esse só funciona na primeira chamada a apl, depois deixa de funcionar)

No evento ajax valor_onChange:
sc_ajax_javascript('nm_atualiza', array("alterar"));

Agora só preciso fazer com que o enter faça o submit e na recarga do form, o foco esteja no campo1.
Também já marquei no sc a opção de foco inicial no campo1, mas só funciona na primeira chamada ao form.
Obrigado.
Rodrigo.
Rodrigo Araújo

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #6 Online: Junho 05, 2012, 01:20:25 pm »
Pessoal,
Seria possível usar apl blank para criar este maldito formulário?
São apenas 2 campos, código e valor, sem validação, para entrada rápida via tecla enter.

Nessa sequência:
Foco no campo Código, digita-se o código e tecla <enter>
Foco no campo Valor, digita-se o valor e tecla <enter>

Este último enter salva os dados na base e retorna ao form, limpando os valores e aguardando nova digitação.
Existiria um 3º campo oculto, com valor preenchido através de uma variável global.

Algo muito simples, mas com apl controle não teve jeito, pelo menos pra mim. Só funciona usando TAB, com enter não teve jeito.

Obrigado a todos.
Rodrigo
Rodrigo Araújo

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #7 Online: Junho 05, 2012, 01:36:13 pm »
Acabei de achar esse código na net, será que serve?

<script language="JavaScript">
function subenter() {
obj = event.srcElement.name;
key = event.keyCode;
totalelementos = document.forms[0].elements.length;
ultimo = document.forms[0].elements[totalelementos-1].name;
if ( (key==13) && (obj!=ultimo) ) {
for(i=0;i<totalelementos;i++) {
 if (document.forms[0].elements.name == event.srcElement.name) {
 document.forms[0].elements[i+1].focus();
 break;
 }
}
}
if ( (obj==ultimo) && (key==13) ) { document.forms[0].submit(); }

}

document.onkeypress = subenter;
</script>
Rodrigo Araújo

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #8 Online: Junho 22, 2012, 05:14:05 pm »
Ninguém no fórum usa apl controle pra digitação apenas pelo teclado? Leitor de código de barras???
Rodrigo Araújo

Haroldo

  • Expert
  • *****
  • Mensagens: 6276
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Ajuda com submit via enter em form controle
« Responder #9 Online: Junho 22, 2012, 05:21:20 pm »
eu utilizo controle código de barras ou digitação via  teclado.

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #10 Online: Junho 22, 2012, 08:33:24 pm »
To com um cliente me apurrinhando o juizo pq não pode lançar os itens do pedido apenas pelo teclado, tem que ficar cliando em salvar no grid editável.

Consegui fazer na apl controle que o ultimo campo grave o registro, mas ele não volta com foco no primeiro campo e limpa os conteudos pra um novo registro nem a pau.
Rodrigo Araújo

Robert Berbert

  • Expert
  • *****
  • Mensagens: 769
  • Desenvolver é sempre estar se atualizando.
    • Conesoft
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #11 Online: Junho 25, 2012, 08:55:55 am »
To com um cliente me apurrinhando o juizo pq não pode lançar os itens do pedido apenas pelo teclado, tem que ficar cliando em salvar no grid editável.

Consegui fazer na apl controle que o ultimo campo grave o registro, mas ele não volta com foco no primeiro campo e limpa os conteudos pra um novo registro nem a pau.

Qual o evento que realiza o registro?
Qual aplicação você quer que realize os outros eventos?
-- Design ou programador eis a questão.

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com submit via enter em form controle
« Responder #12 Online: Junho 25, 2012, 01:01:09 pm »
No post 6 tá bem detalhado, a questão é fazer funcionar com enter, pois com tab já funciona.
Rodrigo Araújo

MikeC

  • Iniciante
  • **
  • Mensagens: 57
Re:Ajuda com submit via enter em form controle
« Responder #13 Online: Junho 26, 2012, 05:57:07 am »
Olá Rodrigo

Podes testar o seguinte codigo no event onLoad.

Código: [Selecionar]

?>
<script>
$(document).ready(function() {
document.F1.id_sc_field_produto.value="";
document.F1.id_sc_field_valor.value="";
});
$(document).bind('keypress', function (e) {   
idcampo=$("*:focus").attr("id");
if (e.which==13 && idcampo=="id_sc_field_produto"){
document.getElementById("id_sc_field_valor").focus();
}
if (e.which==13 && idcampo=="id_sc_field_valor"){
document.F1.submit();
}
});
</script>
<?php


Abraço

MikeC

  • Iniciante
  • **
  • Mensagens: 57
Re:Ajuda com submit via enter em form controle
« Responder #14 Online: Junho 26, 2012, 10:43:59 am »