pra fazer isso funcionar, vc pode usar o plugin do ajax Form http://jquery.malsup.com/form/
que envia a requisição via ajax… com o resultado, vc pode atualizar alguma div ou coisa do tipo dentro do modal
eu tentei utilizar esse plugin, mais como a modal é carregada dinamicamente, não consigo pegar o form. O codigo javascript esta abaixo:
[code] $(function() {
var options = {
target: '#resultado',
beforeSubmit: showRequest
};
$("#btnCooperado").click(function(){
$("#modalCooperados").dialog('open');
$("#modalCooperados").load("<c:url value='/cooperado.pesquisar' />");
}
);
$("#btnFechar").click(function(){
$('#modalCooperados').dialog('close');
});
$("#modalCooperados").dialog({
bgiframe: true,
autoOpen: false,
height: 500,
width: 600,
modal: true
});
$('#pesquisarForm').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
});
function showRequest(formData, jqForm, options) {
var queryString = $.param(formData);
return true;
}[/code]
Ainda assim, é feito o post para a pagina de pesquisa.
dá uma olhada nas options desse plugin…
acho que dá pra vc criar um modal sem botão, colocar no html do texto o form de pesquisar, com o id certo
e transformar ele em um ajax form
pelo que eu percebi o jquery não esta conseguindo achar os elementos DOM dessa página que é carregada via metodo load.
Nessa pagina carregada, não consigo manipular nada via jquery, se eu colocar um evento direto no botão de pesquisar dai eu consigo fazer alguma coisa.
dá uma olhada no html que o modal gera… às vezes ele muda o id das coisas, e dá pau
Agora se eu colocar um include desse arquivo dentro da div modal, o jquery acha os elementos da pagina, mais dai por algum motivo que eu não sei o qual, debugando eu vi que ele passa duas vezes no metodo do controller que traz os dados da tabela, mais quando a modal abre não aparece os dados na tabela.
vc precisa pegar o div do modal, e colocar os dados lah dentro
pelo firebug olhei o html gerado os ids continuam o mesmo, dei um alert no $("#form").name e esta indefined, se der um alert em $("#form"), aparece Object, tem como saber que objeto é esse?
não existe $("#form").name mesmo…
com o jquery o jeito de acessar atributos é diferente:
$("#form").attr(“name”)…
o que vc quer fazer?
como eu utilizei o load para carregar os dados na modal, queria saber o que tem dentro da div modal.
sobre colocar os dados dentro da div, o load faz isso né?
acho que é só passar o id da div: “#idDaDiv”
[code] $("#btnCooperado").click(function(){
$("#modalCooperados").dialog(‘open’);
$("#modalCooperados").load("<c:url value=’/cooperado.modal’ />");
$("#modalCooperados").each(function(i, val){
alert(val);
});
}
);
[/code]
Com esse codigo apartir de um button eu abro a modal, na onde tem o alert me aparece [object HTMLDivElement], mais só isso.
Mais ainda não consegui pegar nenhum elemento da pagina adicionada.
dá uma olhada no plugin de dialog, se não tem nenhum jeito melhor de fazer isso…
depois que o div foi carregado, suponha que existe um elemento qqer com id=“abc”…
vc consegue acessar ele via $(’#abc’)
fiz um teste num html puro usando o exemplo do que esta no site do jquery http://jqueryui.com/demos/dialog/#modal-form, e deu certo.
Na pagina carregada, eu coloquei o codigo abaixo, e nada, parece que nem foi carregada, será porque ela é carregada dinamicamente?
[code] $(function(){
alert("CARREGOU...");
});[/code]
se eu acesso a pagina de pesquisa diretamente na url do browser o alert(“CARREGOU…”); executa, já na modal não.
qdo vc carrega via load ele não executa os javascripts da página carregada
tem alguma sugestão para carregar essa pagina?
tenta inverter:
$("#modalCooperados").load("<c:url value='/cooperado.modal' />");
$("#modalCooperados").dialog('open');
deveria aparecer algo… senão tenta algo diferente de modal
mesmo invertendo a ordem não deu certo, o estranho é que somente o javascript do jquery que não funciona:
[code][/code]