Fazer o submit do html:form com um link [Resolvido]
11 respostas
M
moonlight
Olá pessoal
Tenho um html:form que está funcionando corretamente com botoes html:submit. Mas querem que eu retire os botoes e use links :S entao estou tentando fazer isso.
Prq não pegar o form por js e dar um submit por js? Ai não importa aonde vc vai estar
^D
M
moonlight
Eu queria evitar usar js, porque se ele estiver desabilitado meu submit vai falhar que é uma beleza… queria saber se tem outro jeito.
M
moonlight
É, não tem como por um jeito baseado no struts mesmo. Então tentei javascript… e ainda assim nao deu certo… parece q na hora de dar o submit, ele nao se toca que tem que fazer todo aquele caminho do struts, passando pelo struts-config e etc… dá Resource /Action not found.
Alguem já deu submit do html:form com um link, tendo feito isso de qualquer maneira? Do jeito que for tá bom pra mim…hehehe
M
moonlight
Estou fazendo assim:
<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><%@tagliburi="/tags/struts-logic"prefix="logic"%><%@tagliburi="/tags/struts-bean"prefix="bean"%><%@tagliburi="/tags/struts-html"prefix="html"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Coleçôes</title><linkrel="stylesheet"type="text/css"href="../config/estilos.css"/><html:base/><scriptlanguage="JavaScript">functiondispatchIt(){document.forms[0].action="/AddColecao.do";document.forms[0].submit();}</script></head><bodyonunload="window.parent.open('blank.jsp','down')"><spanstyle="font-family:Sans-serif;"><tablewidth="100%"align="center"><tr><td> Coleções </td></tr><trbgcolor="#000000"><td></td></tr></table><br><br><br><html:formaction="/AddColecao.do"method="post"focus="colecao"><tableborder="0"align="center"><tr><tdwidth="50%"> Coleção </td><tdwidth="50%"><html:textproperty="colecao"/></td></tr><tr><tdwidth="50%"> Descricão </td><tdwidth="50%"><html:textproperty="descricao"/></td></tr></table><br/><tablewidth="100%"><tr><tdalign="center"><ahref="javascript:void(0);"onclick="javascript:dispatchIt();"property="method"><bean:messagekey="button.add"/></a></td><tdalign="center"><ahref="teste.htm">Deletar</a></td><tdalign="center"><ahref="teste.htm">Localizar</a></td><tdalign="center"><ahref="teste.htm">Limpar</a></td></tr></table></html:form><br><br><br><html:errors/></span></body></html>
Percebam que no formulario a acao está informada sendo a mesma do link. É porque eu estava tentando fazer com uma LookupDispatchAction, e agora estou tentando com uma action, porem nao houve mudança.
Desculpem se a pergunta é burrica d+, mas nao tou conseguindo fazer sair. Ninguem aqui tentou fazer submit por link, pra dizer?
obrigada
M
Mauricio_Linhares
Ele provavelmente não está levando em consideração onde a página está (ou em qual contexto esse action está). Coloque o caminho completo (com o contexto) pra ver se funciona.
E outra coisa, fazendo desse jeito você não vai poder usar o validator pra gerar JavaScript pra validação.
M
moonlight
ptz, quer dizer que validacao, só com os botoezinhos? Mas eles são bem feios né :? ?
De qualquer forma, obrigada
M
Mauricio_Linhares
moonlight:
ptz, quer dizer que validacao, só com os botoezinhos? Mas eles são bem feios né :? ?
De qualquer forma, obrigada
Não exatamente, mas você vai ter que fazer a chamada da função de validação dentro daquela sua função de submit.
Se você tirar:
document.forms[0].action="/AddColecao.do";
Funciona?
M
moonlight
Funcionou colocando o caminho todo… tipo /Aplicacao/Action.do… nesse caso, funciona até o validator e tudo mais… perfeitamente.
Mas só funciona pra Action que está informada no form… se eu atribuir outra pelo js, o troço simplesmente nao mexe… vc clica e nada acontece.
Pra dispatchAction nao está funcionando pq ainda nao consegui arrumar um jeito de passar o parametro, mas é isso que estou tentando aqui.
M
Mauricio_Linhares
moonlight:
Pra dispatchAction nao está funcionando pq ainda nao consegui arrumar um jeito de passar o parametro, mas é isso que estou tentando aqui.
Oxe, passa o parâmetro direto na função do JS.
M
moonlight
Então, é o que estou fazendo. Pra dispatch estou passando parent.top.document.addColecaoForm.action="/AugeProducao/UpdateDeleteColecao.do?method=button.add"… só que aí ele me dá o erro:
Action[/UpdateDeleteColecao] missing resource 'button.delete" in key method map