GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

JQuery - Tela de Cadastro


#1

Olá pessoal!

Sou iniciante em JQuery e estou fazendo uma tela de cadastro onde na parte superior da janela eu tenho os filtros da pesquisa e uma table para exibir o resultado. Se o usuário clicar em uma linha do resultado eu mostro um div abaixo com o formulário de cadastro e os dados preenchidos. Até aí eu consigo fazer numa boa. O problema é que eu gostaria de clicar em um registro de pesquisa e esse form de cadastro aparecesse via Ajax (JQuery), pois quando clico na linha desejada, minha pesquisa é refeita e dependendo do número de registros, demora muito para montar a página. Alguém poderia me ajudar?


#2

Procure por jquery modal e utilize algo do tipo: $("#divModal").modal(); ou $.modal(data[1]).

O segundo exemplo eu passo uma pagina jsp com o conteudo do modal.


#3

Obrigado alecke. Vou pesquisar. Mas tentei fazer uma coisa simples. Tentei fazer com que um botão exibisse um alert no evento onClick, mas a página não faz nada. O interessante é que se eu fizer um submit na página usando outro botão, após isso a página passa a exibir o alert se eu clicar no botão inicial.
Segue meu código:

DECLARAÇÃO JQUERY

        $(function() {
              $("#btTeste").click(function() {
                alert("teste");
                return false;
              });
        });

DECLARAÇÃO DO BOTÃO

<input id="btTeste" type="submit" value="teste"></li>

#4

Verifique se a biblioteca do jquery foi importada corretamente na página em questão,

Tente assim:

<input id="btTeste" type="submit" value="teste" onclick="exibir();"></li>
function exibir() {
      alert("teste");
}

ou

$("#btTeste").click(function() {
  alert("teste");
});

Reconheço que tive problemas parecidos do bind do jquery não funcior em páginas carregadas dinamicamente (ajax), por isso prefiro utiliza-lo da maneira tradicional utilizando os eventos dos objetos.

Outro exemplo:

Para pegar o valor de um campo:

$("#btTeste").val();

Para definir o valor de um campo:

$("#btTeste").val("valorExemplo");

Existem diversos facilitadores na biblioteca do jquery, e a maior vantagem é funcionar em qualquer navegador com uma velocidade incrivel (buscar nos elementos no DOM, etc) com um tamanho menor que 20k.


#5

Valeu pela dica, mas no meu caso, utilizar da maneira tradicional não resolveria, pois estou trabalhando com struts 2 e ao clicar no botão, eu tinha que fazer um post passando a URL da minha action. Fiz o teste do Alert só p/ saber se o click do botão estava funcionando, mas pelo visto deve ser um problema de bind mesmo.
Preciso fazer algo do tipo:

$(function(){
  $("form").submit(function(){
    var value = $(this).find("input[name=test]").val();
    $.post("/teste/funcionario/pesquisar.action",{"teste":value},function(){
      alert("Pesquisar realizada com sucesso!");
    });
    return false;
  });
});

Nesse caso o bind é feito para o form, mas já vi exemplos como esse utilizando click.


#6

[quote=alissonmn]Valeu pela dica, mas no meu caso, utilizar da maneira tradicional não resolveria, pois estou trabalhando com struts 2 e ao clicar no botão, eu tinha que fazer um post passando a URL da minha action. Fiz o teste do Alert só p/ saber se o click do botão estava funcionando, mas pelo visto deve ser um problema de bind mesmo.
Preciso fazer algo do tipo:

$(function(){
  $("form").submit(function(){
    var value = $(this).find("input[name=test]").val();
    $.post("/teste/funcionario/pesquisar.action",{"teste":value},function(){
      alert("Pesquisar realizada com sucesso!");
    });
    return false;
  });
});

Nesse caso o bind é feito para o form, mas já vi exemplos como esse utilizando click.[/quote]

Viu o novo exemplo que coloquei?

   $("#btTeste").click(function() {  
     alert("teste");  
   });

#7

Sim,

Coloquei o seu exemplo, mas não funcionou. Ocorre o mesmo que relatei anteriormente. Se clico no botão ele não faz nada, mas se clico em outro botão (btPesquisa) e depois clico no botão inicial (btTeste) ele funciona. Parece que ele só faz o bind depois que um primeiro submit é feito.


#8

Fala, galera!

Estou com um problema que é o seguinte: estou usando jQuery com Struts 2. Fiz uma função JavaScript utilizando o $.ajax para chamar uma Action do Struts2, a partir do atributo url do $.ajax.
Acontece que não funciona. Nem chega na Action do Struts. A Action está mapeada corretamente, pois funciona com o prototype.
Se eu mudar a url para um jsp ou um html também funciona. Só não funciona quando tento passar pelo filtro do Struts2.

Alguma idéia?

Abraço.


#9

"#form"

$(function(){
  $("#form").submit(function(){
    var value = $(this).find("input[name=test]").val();
    $.post("/teste/funcionario/pesquisar.action",{"teste":value},function(){
      alert("Pesquisar realizada com sucesso!");
    });
    return false;
  });
});

#10