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?
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.
A
alissonmn
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:
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.
A
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(){varvalue=$(this).find("input[name=test]").val();$.post("/teste/funcionario/pesquisar.action",{"teste":value},function(){alert("Pesquisar realizada com sucesso!");});returnfalse;});});
Nesse caso o bind é feito para o form, mas já vi exemplos como esse utilizando click.
A
aleck
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(){varvalue=$(this).find("input[name=test]").val();$.post("/teste/funcionario/pesquisar.action",{"teste":value},function(){alert("Pesquisar realizada com sucesso!");});returnfalse;});});
Nesse caso o bind é feito para o form, mas já vi exemplos como esse utilizando click.
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.
R
rnicolletti
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.
$(function(){$("#form").submit(function(){varvalue=$(this).find("input[name=test]").val();$.post("/teste/funcionario/pesquisar.action",{"teste":value},function(){alert("Pesquisar realizada com sucesso!");});returnfalse;});});