Javascript

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.