Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Veronica Gravino

erro com function dispara

Recommended Posts

Tenho uma pagina asp com 3 combos em asp vindas do banco de dados, só que preciso passar os parametros de asp, para a pagina que recebe que é em asp.net, e nao estou conseguindo :(

 

esse é o js que armazena os parametros do form pra pagina asp.net com o "cod" e o "tipo"

<script type="text/JavaScript">

 

<!--
function DisparaPagina(cod,tipo){ 
d=document.form1;
d.action = "conteudo.aspx?cod="+cod+"&tipo="+tipo+"";
d.submit();
</script>

aqui estao os forms das tres combos:

 

combo1

<form action="" method="post" name="form1"  onSubmit="return DisparaPagina(<%=request.form("treinamentos")%>,2)">
		<table>
		  <tr>
			<td>
			  <select name="treinamentos" class="style1"  >
			  <option>< selecione um Item></option>
			  <%do while not ObjRecSet.eof%>
			  <option value="<%=ObjRecSet("cod")%>"><%=ObjRecSet("titulo")%></option>
			  <%ObjRecSet.movenext
			  Loop
			  %>
			  </select>
			  <input type="submit"  value="ok" />
		  </td>
		  </tr>
		</table>
	   </form>

combo 2

<form action="" method="post" name="form1" onSubmit="return DisparaPagina(<%=request.form("cursos")%>,0)">
<table>
   <tr>
	 <td>
		  <select name="cursos" class="style1">
			 <option>< selecione um Item></option>
			 <%do while not ObjRecSet.eof%>
			  <option value="<%=ObjRecSet("cod")%>"><%=ObjRecSet("titulo")%></option>
			  <%ObjRecSet.movenext
			  Loop
			  %>
	 </select>
	 <input type="submit"  value="ok" />
  </td>
  </tr>
 </table>
</form>

combo 3

 

<form name="form1" action="" method="post" onSubmit="return DisparaPagina(<%=request.form("palestras")%>,1)" >
 <table>
	<tr>
	   <td><select name="palestras" class="style1">
		 <option>< selecione um item ></option>
		 <%do while not ObjRecSet.eof%>
		 <option value="<%=ObjRecSet("cod")%>"><%=ObjRecSet("titulo")%></option>
		 <%ObjRecSet.movenext
			  Loop
			  %>
	   </select>
		 <input name="submit" type="submit"  value="ok" />
		 <%ObjRecSet.close
		  Set ObjRecSet = nothing
		  %>  
			  </select>
	</form>

o problema é que ele nao esta dando submit nos formularios das combos, alguem sabe porque???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere:

<script type="text/JavaScript">
<!--
function DisparaPagina(cod,tipo){
d=document.form1;
d.action = "conteudo.aspx?cod="+cod+"&tipo="+tipo+"";
d.submit();
</script>

Para...

<script type="text/JavaScript">
<!--
function DisparaPagina(cod,tipo){
d=document.form1;
d.action = "conteudo.aspx?cod="+cod+"&tipo="+tipo+"";
}
</script>

Como você já está usando o onSubmit do form, não precisa definir o envio do formulário dentro da função.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola guto, obrigada pela ajuda, mas nao esta dando certo mesmo assim, vou postar a url da pagina pra você ver oque esta acontecendo :

 

http://www.institutoidep.com.br/html/agenda_teste_teste.asp

São estas 3 combos que nao esta funcionando o sumbit ....

 

alguem sabe porque??

agradeço desde ja!

 

-----------------------------------------------------------------------------------

Post Mesclado

-----------------------------------------------------------------------------------

 

nao tem como eu fazer com 'Onchange' ao inves de colocar um form e um input button para cada combo????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conferi a url q você passou, os dois primeiros combos estão sem o primeiro parâmetro da função

 

DisparaPagina(,0)

Se você colocar no onChange, vai contra algumas regras da acessibilidade, pois quem estiver usando apenas o teclado não poderá escolher outras opções, a não ser que saiba usar a tecla de atalho ALT+Seta para Baixo (algumas pessoas não conhecem).

 

Caso o navegador não suporte JavaScript ou ele esteja desabilitado também não funcionará, já com onSubmit não tem esse problema. Mas para isso coloque a url da página no action do form, assim se a função não for ativada ele será usado. Caso a função funcione (javascript esteja habilitado) o action do form será ignorado, o action da função irá prevalecer.

 

 

Nos forms, altere a chamada da função para:

<form method="post" name="form1" action="vai_se_não_suportar_javascript" onSubmit="return DisparaPagina(this,<%=request.form('treinamentos')%>,2);">

E a função para:

function DisparaPagina(form,cod,tipo) {		
		if(cod == '') {
		alert('Selecione uma opção');
			return false;
		}
		else {
			d = form;
			d.action = "asfd.html?cod="+cod+"&tipo="+tipo;
			return true;
		}
	 }

- Defina um nome diferente para cada form;

- Acrescente o action em cada um;

Exemplo do form:

<form method="post" name="form1" action="" onSubmit="return DisparaPagina(this,<%=request.form('treinamentos')%>,2);">

No último form, você fechou o select duas vezes, apague a última ocorrência do fechamento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conferi a url q você passou, os dois primeiros combos estão sem o primeiro parâmetro da função

 

DisparaPagina(,0)

Se você colocar no onChange, vai contra algumas regras da acessibilidade, pois quem estiver usando apenas o teclado não poderá escolher outras opções, a não ser que saiba usar a tecla de atalho ALT+Seta para Baixo (algumas pessoas não conhecem).

 

Caso o navegador não suporte JavaScript ou ele esteja desabilitado também não funcionará, já com onSubmit não tem esse problema. Mas para isso coloque a url da página no action do form, assim se a função não for ativada ele será usado. Caso a função funcione (javascript esteja habilitado) o action do form será ignorado, o action da função irá prevalecer.

 

 

Nos forms, altere a chamada da função para:

<form method="post" name="form1" action="vai_se_não_suportar_javascript" onSubmit="return DisparaPagina(this,<%=request.form('treinamentos')%>,2);">

E a função para:

function DisparaPagina(form,cod,tipo) {		
		if(cod == '') {
		alert('Selecione uma opção');
			return false;
		}
		else {
			d = form;
			d.action = "asfd.html?cod="+cod+"&tipo="+tipo;
			return true;
		}
	 }

- Defina um nome diferente para cada form;

- Acrescente o action em cada um;

Exemplo do form:

<form method="post" name="form1" action="" onSubmit="return DisparaPagina(this,<%=request.form('treinamentos')%>,2);">

No último form, você fechou o select duas vezes, apague a última ocorrência do fechamento.

Ola gutto, eu fiz as alterações que voce citou e deu certo, mas o único problema é que continua enviando as vezes sem os parametros e da como se fosse um refresh na propria pagina... deve ser algum erro do navegador, nao???:(

mesmo assim, muito obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script type="text/JavaScript">
function DisparaPagina(form,cod,tipo) {		
		if(cod == '') {
		alert('Selecione uma opção');
			return false;
		}
		else {
			d = form;
			d.action = "conteudo.aspx?cod="+cod+"&tipo="+tipo;
			return true;
		}
	 }





function ClickLst(obj){

	var isIE=(navigator.appName.indexOf('Microsoft')!=-1)?1:0; 
	if(isIE){   window.location = obj.value; }
}

//-->
</script>

<form method="post" name="form1" action="" 
 onSubmit="return DisparaPagina(this,<%=request.form("treinamentos")%>,2);">
		<table>
		  <tr>
			<td>
			  <select name="treinamentos" class="style1"  >
			  <option>< selecione ></option>
			  <%do while not ObjRecSet.eof%>
			  <option value="<%=ObjRecSet("cod")%>"><%=ObjRecSet("titulo")%></option>
			  <%ObjRecSet.movenext
			  Loop
			  %>
			  </select>
			  <input type="submit"  value="ok"  class="formulario"/>
		  </td>
		  </tr>
		</table>
	   </form>

 

 

<form  method="post" name="form2"  action="" onSubmit="return DisparaPagina(this,<%=request.form("cursos")%>,0);">
<table>
   <tr>
	 <td>
		  <select name="cursos" class="style1">
			 <option>< selecione ></option>
			 <%do while not ObjRecSet.eof%>
			  <option value="<%=ObjRecSet("cod")%>"><%=ObjRecSet("titulo")%></option>
			  <%ObjRecSet.movenext
			  Loop
			  %>
	 </select>
	 <input type="submit"  value="ok" />
  </td>
  </tr>
 </table>
</form>

 

<form name="form3"  method="post"  action=""  onSubmit="return DisparaPagina(this,<%=request.form("palestras")%>,1);">
 <table>
	<tr>
	   <td><select name="palestras" class="style1" >
		 <option>< selecione ></option>
		 <%do while not ObjRecSet.eof%>
		 <option value="<%=ObjRecSet("cod")%>"><%=ObjRecSet("titulo")%></option>
		 <%ObjRecSet.movenext
			  Loop
			  %>
	   </select>
		 <input name="submit" type="submit"  value="ok" />
		 <%ObjRecSet.close
		  Set ObjRecSet = nothing
		  %>  
			  
	</form>		
	 </td>
   </tr>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere seus forms:

 

Form1:

<form action="" method="post" name="form1" id="form1" onSubmit="return DisparaPagina(this,this.treinamentos.value,2);">
Form2:

<form  action=""  method="post" name="form2" id="form2" onsubmit="return DisparaPagina(this,this.cursos.value,0);">
Form3:

<form  action=""  method="post" name="form3" id="form3"  onsubmit="return DisparaPagina(this,this.palestras.value,1);">

Defina o action de cada um dentro do form, caso o javascript esteja desabilitado não irá atrapalhar a navegação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.