Pessoal, estou com uma duvida que parece ser besta, quero criar uma função javascript para passar dinamicamente o action de um form, seria mais ou menos assim;
<html:form action="dinamico">
Pessoal, estou com uma duvida que parece ser besta, quero criar uma função javascript para passar dinamicamente o action de um form, seria mais ou menos assim;
<html:form action="dinamico">
Pessoal estou usando as taglibs do Struts 1x, quero criar uma função javascript que vou passr o pessoaForm dinamicamente, tentei isso:
document.forms[0].action= "pesquisarPessoaForm";
document.forms[0].submit();
só que não funfoujavascript:emoticon(’:(’);
[quote=srmachado]Pessoal estou usando as taglibs do Struts 1x, quero criar uma função javascript que vou passr o pessoaForm dinamicamente, tentei isso:
document.forms[0].action= "pesquisarPessoaForm";
document.forms[0].submit();
só que não funfoujavascript:emoticon(’:(’);[/quote]
Minha aposta eh que vc esta rodando esse javacript cedo demais, antes da pagina esta complementamente redenrizada. Eu nao sei como o struts funciona, mas eu acredito que essa tag no final vai renderizar uma tag form standard.
Porque vc nao faz o seguinte, instala o firebug no seu browser e coloca um break point na parte que vc seta a action, ai vc inspeciona document.forms
//Daniel
Pessoal talvez o que quero fazer vocês possam de da uma dica melhor, é o seguinte, tenho form que ta definido assim:
<html:javascript formName="pesquisarPessoaForm" staticJavascript="false" />
<html:form action="pesquisarPessoaAction" onsubmit="javascript:return validaFinalize()">
<input type="hidden" name="dispatch" value="pesquisar" />
Tenho um input que da um submit nesse form que esta definido assim:<input name="btnPesquisar" type="submit" class=botao_finalizar value=Pesquisar />
blz até ai esta tudo certinho, o problema é que tive que adicionar mais um botão que não chama a action que esta definida no form, vai chamar uma outra action, o botão já esta definida assim:<input name="btnPesquisarX" type="button" class="botao_finalizar" onclick="javascript:pesquisaPessoaX()" value="Pesquisar X" />
o método pesquisaPessoaX esta definido assim:
function pesquisaPessoaX(){
document.forms[0].action="pessoaSespPesquisaXAction";
document.forms[0].submit();
}
porem não esta funcionado, se alguem puder me da uma luz agradeço.
Exemplo de mao beijada pra voce.
<html>
<head>
<title>test</title>
<script type="text/javascript">
function changeAction() {
var form = document.getElementById("myform");
if(form) {
form.action ="test2.php";
form.submit();
}
}
</script>
</head>
<body>
<form id="myform" action="test.php">
<button id="btn1" value="Basico">Call test.php</button>
<button id="btn2" value="Avancado" onclick="changeAction()" />call test2.php</button>
</body>
</html>
E se vc nao quiser adicionar um ID no form, eh soh fazer:
html>
<head>
<title>test</title>
<script type="text/javascript">
function changeAction(caller) {
var form = caller.form;
if(form) {
form.action ="test2.php";
form.submit();
}
}
</script>
</head>
<body>
<form id="myform" action="test.php">
<button id="btn1" value="Basico">Call test.php</button>
<button id="btn2" value="Avancado" onclick="changeAction(this)" />call test2.php</button>
</body>
</html>
Eu particularmente acho essa versao melhor. E se vc quise fazer a sua funcao ficar mais generica, seria uma boa ideia tambem receber a action como parametro, por exemplo:
function changeAction(caller, action) {
var form = caller.form;
if(form) {
form.action = action;
form.submit();
}
}
E o HTML
<button id="btn2" value="Avancado" onclick="changeAction(this, 'test2.php')" />call test2.php</button>
//Daniel
Cara, o problema é que estou dando manutenção no sistema e o pessoal esta usando o struts 1x, dai tenho que passar na action do form a action mapeada no struts.
Nao vejo o problema, o nome da action nao eh “pessoaSespPesquisaXAction”, troca test2.php por “pessoaSespPesquisaXAction” e pronto.
<button id="btn2" value="Avancado" onclick="changeAction(this, 'pessoaSespPesquisaXAction')" />Pesquisa pessoa Sesp</button>
//Daniel
Cara deu certo não.