[OT] Javascript - erro no submit

2 respostas
vivi_grieco

Pessoal,
tô com um problema estranho… estou desenvolvendo uma aplicação usando Struts, q dependendo de qual botão eu clicar, ele redireciona p/ uma action diferente. Para isso, eu coloquei uma função javascript no botão, assim (o botão é uma imagem):

<a href="javascript:mudarAction('resumida');" onMouseOver="window.document['consResumida'].src= ilum.src" onMouseOut="window.document['consResumida'].src = apag.src" target="_parent">
            <img src="images/btn_consulta_resumida.gif" name="consResumida" align="absbottom" >
	  </a>

a função “mudarAction” é essa:

function mudarAction(obj){
  if(obj == 'resumida'){
    document.consultaForm.action = "Consulta.do?act=consultarResumida";
    document.consultaForm.submit();
  }else{
   document.consultaForm.action = "Consulta.do?act=consultarDetalhada";
   document.consultaForm.submit();
  }
}

o problema está na linha do submit (de qualquer um dos dois casos). quando clico no botão, ele me retorna esse erro de javascript:

O objeto não dá suporte para a propriedade ou método

e esse erro ocorre nessa linha do submit.

Alguém tem alguma idéia??

Já tentei colocar no lugar da action e do submit ao invés do consultaForm o forms[0], mas se faço isso, na minha action ele me retorna null os campos do formulário, não sei por que tbm…

2 Respostas

peczenyj

Dei uma simplificada

O que acontece é : vc não tinha um objeto do tipo consultaForm debaixo do objeto document. Duvida? coloca um alert(document.consultaForm) no começo do metodo, vai ver q aparece undefined!

primeiro vc pega o elemento cujo id vc conhece e manda brasa...

<html>
<script language="Javascript">
function mudarAction(obj){
   consultaForm = document.getElementById('consultaForm');
   if(obj == 'resumida'){
     consultaForm.action = "Consulta.do?act=consultarResumida";     
   }else{
    consultaForm.action = "Consulta.do?act=consultarDetalhada";    
   }
   alert(consultaForm.action); // para garantir
 }
 </script>
<body>
<form id="consultaForm" action="QQ.COISA">
<a href="javascript:mudarAction('resumida');">

	<img src="images/btn_consulta_resumida.gif">
 	 
 </a>
 </form>
 </body>
J

Mas o nome do seu form é esse mesmo? Não precisa usar id pra isso.

Acesse o form dessa maneira:

document.NomeDoForm.action = "bla bla bla";
document.NomeDoForm.submit();

Caso você tenha utilizado um id pro form a linha de comando é:

document.getElementById("id_do_form").submit();
Criado 29 de janeiro de 2007
Ultima resposta 29 de jan. de 2007
Respostas 2
Participantes 3