Ir para conteúdo

Arquivado

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

shumi

1 função para campos diferentes do form

Recommended Posts

Galera,beleza?Tenho uma função em JS e gostaria de usa-la 2 vezes, então fiz a função la no head e no body "chamei" ela 2 vezes, mas apenas 1 vez funcionou... como faço para que 2 ou mais vezes funcione???Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passando como parâmetro o nome dos campos...B)

...eu pensei nisso, mas e se os campos tiverem o mesmo nome??? tem como?Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano,

 

Não entendo muito bem o que você quer me dizer...

Dá uma olhada pra ver se é possivel fazer...

 

Aquela função dos pontos

<script LANGUAGE="JavaScript">function formatCurrency(num) {num = num.toString().replace(/\$|\,/g,'');if(isNaN(num))num = "0";sign = (num == (num = Math.abs(num)));num = Math.floor(num*100+0.50000000001);cents = num%100;num = Math.floor(num/100).toString();if(cents<10)cents = "0" + cents;for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));return (((sign)?'':'-') + num);}function valor(){var inicial = document.getElementById("inicial").value;var entrada = document.getElementById("entrada").value;var final = document.getElementById("final").value;if (isNaN(inicial) || isNaN(entrada) || isNaN(final) ) {alert("Preencha os campos corretamente!");} else {var vendas = Number(inicial) + Number(entrada) - Number(final);document.getElementById("vendas").value = formatCurrency(vendas); //AQUI FORMATO O CAMPO}}</script>

no body tenho um form que tenho que usa-la + de 1 vez que seria assim:

 

1 vez

<input name="inicial" type="text" id="inicial" size="10" onKeyUp="valor();">		  </div></td>		  <td>			<div align="center">			<input name="entrada" type="text" id="entrada" size="10" onKeyUp="valor();"></div></td>		  <td>			<div align="center">		   			<input name="final" type="text" id="final" size="10" onKeyUp="valor();">		  </div></td>		  <td><div align="center"><span class="texto10">			<input type="text" name="vendas" id="vendas">

2 vezes

<input name="inicial" type="text" id="inicial" size="10" onKeyUp="valor();">		  </div></td>		  <td>			<div align="center">			<input name="entrada" type="text" id="entrada" size="10" onKeyUp="valor();"></div></td>		  <td>			<div align="center">		   			<input name="final" type="text" id="final" size="10" onKeyUp="valor();">		  </div></td>		  <td><div align="center"><span class="texto10">			<input type="text" name="vendas" id="vendas">

tem como ???

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

então.... nada!!!! :D tenho que colocar várias vezes o inicial, entrada, final e total....só que os dados que o usuario vai colocar são diferentes, pois são prdutos diferentes....Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu banco fica cadastrado tipo assim:Entrada = 10,20,30,40ele separa por virgulas e depois quando mando exibir o relatorio vem certinho sem as virgulas... por isso que os campos tem o mesmo nome...você acha que eu devo mudar o nome dos campos? mas terei que fazer uma função para cada um que vou colocar??? :wacko: Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É Adriano complica muito mesmo, mas já to quase no fim do sistema, e praticamente estou sem prazo nenhum http://forum.imasters.com.br/public/style_emoticons/default/cry.gif , quarta-feira agora tenho que entragar a metade pronto, faltando somente a parte dos relatorios e se eu voltar tudo não consiguirei entregar. escolhi essa maneira, pois foi a única forma que encontrei de fazer esse sistema, como você sabe não manjo muito de programação, e essa foi a solução que consegui. até que o sisteminha ta ficando bom, graças a vcs do Imasters que me ajuda todos os dias, mas esses problemas das virgulas que está me infernizando mesmo. se você der uma olhada nas minhas dúvidas anteriores todas elas são por causa das malditas virgulas, mas eu não sei fazer de outro jeito Adriano!!!

 

Valeu por tentar me ajudar, sei que você está certo, mas não vou conseguir mudar agora! depois que entragar o sistema começo a refazer ele novamente sem essas falhas.

Mas você saberia uma forma de eu fazer que eliminasse essas virgulas??? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa resolvi todos os 3 problemas que estava tendo com o JS, só falta esse agora!!!Se alguem puder me ajudar agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou postar o sistema inteiro pra você ver...

 

http://www.newstyle1.com/sistema

 

usuario: rodrigo

senha: master

 

ai você clica em relatorio depois em campanha.

ai você clica em visualizar ações ai escolhe a ação com o nome de Rodrigo(pq esta mais completa). ai já vai cair na tela que tem as somas....

Dá uma olhada la!!!

 

Abs,

Shumi

Compartilhar este post


Link para o post
Compartilhar em outros sites

eae Adriano você deu uma olhada???Abseae Adriano você deu uma olhada???Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano,

Bom dia!

 

Então ele se repete 14 vezes, pois por exemplo o user cadastrou 14 produtos, se o user cadastrar 2 produtos, será exibido apenas 2 e assim vai...

Na verdade no meu script eu fiz um campo para o inicial, um campo para a entrada, um campo para final e um campo para o total, ai acrescentei ao meu script um loop em ASP assim:

 

<%MINHAVAR = rs("nosso_produto")MEUARRAY = SPLIT(MINHAVAR,",")FOR I = LBOUND(MEUARRAY) TO UBOUND(MEUARRAY)IF TRIM(MEUARRAY(I)) <> "" THEN%>

e no final assim:

 

<%END IF%><%NEXT%>

e os campos se repetem em função da quantidade de produtos cadastrados.

Tem como na hora que eu fazer o loop ou tem algo em JS que faça na hora do loop os campos mudarem de nomes para fazer isso funcionar???

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa Adriano realmente não entendi li umas 5 vezes...

 

vou postar o script inteiro!

 

<%set Conexcao = Server.CreateObject("ADODB.Connection")Conexcao.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MaPpath("dbsistema.mdb")Conexcao.openIf NOT (Session("logado")) ThenResponse.Redirect "index.asp"Response.EndEnd Ifcod = request("id")sql = "select * from dados where cod=" & codSet rs=Conexcao.Execute(sql)%><html><head><title>Sistema NewStyle</title> <style type="text/css"><!--body {	background-color: #FFFFFF;	}	.texto10 {	font-family: Arial, Helvetica, sans-serif;	font-size: 10px;	color: #464646;		}		.texto11 {	font-family: Arial, Helvetica, sans-serif;	font-size: 13px;	color: #464646;	}-->  </style>   <script language="JavaScript" type="text/JavaScript">	function carregar(){	Combo1 = document.Cadastro.estabelecimento; //ALTERE AQUI PARA SEU FORM E 1º SELECT	Combo2 = document.Cadastro.promotora; //ALTERE AQUI PARA SEU FORM E 2º SELECT	var url;	url = 'remote.asp?estabelecimento='+Combo1[Combo1.selectedIndex].value;	Combo2.options.length = 0;	addItem(Combo2,"Aguarde...carregando","",false,Combo2.length)	myIframe.location = url;	Combo2.focus()	}		function inicia(){	local1 = new Array();	var maximo1, i;	local1 = myIframe.loc;	maximo1 = local1.length;	Combo2.options.length = 0;	//addItem(Combo2,false,Combo2.length);	for (i=0;i<maximo1;i++){	addItem(Combo2,local1[i][1],local1[i][0],false,Combo2.length);	}	}		function addItem(obj,strText,strValue,blSel,intPos){	 	 var newOpt,i,ArTemp,selIndex;	 	 selIndex = (blSel)?intPos:obj.selectedIndex;	 	 newOpt = new Option(strText,strValue);	 	 Len = obj.options.length+1	 	 if (intPos > Len) return	 	 obj.options.length = Len	 	 if (intPos != Len) {	 		  ArTemp = new Array();	 		  for(i=intPos;i<obj.options.length-1;i++)	 			   ArTemp[i] = Array(obj.options[i].text,obj.options[i].value);	 		  for(i=intPos+1;i<Len;i++)	 			   obj.options[i] = new Option(ArTemp[i-1][0],ArTemp[i-1][1]);	 	 }	 	 obj.options[intPos] = newOpt;	 	 if (selIndex > intPos)	 		  obj.selectedIndex = selIndex+1;	 	 else if (selIndex == intPos)	  		  obj.selectedIndex = intPos;	 }	 </script><script LANGUAGE="JavaScript">function formatCurrency(num) {num = num.toString().replace(/\$|\,/g,'');if(isNaN(num))num = "0";sign = (num == (num = Math.abs(num)));num = Math.floor(num*100+0.50000000001);cents = num%100;num = Math.floor(num/100).toString();if(cents<10)cents = "0" + cents;for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));return (((sign)?'':'-') + num);}function valor(){var inicial = document.getElementById("inicial").value;var entrada = document.getElementById("entrada").value;var final = document.getElementById("final").value;if (isNaN(inicial) || isNaN(entrada) || isNaN(final) ) {alert("Preencha os campos corretamente!");} else {var vendas = Number(inicial) + Number(entrada) - Number(final);document.getElementById("vendas").value = formatCurrency(vendas); //AQUI FORMATO O CAMPO}}</script></head><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><img src="topo.jpg"><p>  <style type="text/css"><!-- CSS body {	background-color: #FFFFFF;	}	.texto10 {	font-family: Arial, Helvetica, sans-serif;	font-size: 10px;	color: #464646;}	.texto11 {	font-family:Arial, Helvetica, sans-serif;	font-size:13px;	color: #464646;	}--></style></p><p align="center"><span class="texto11">Dados da Promoção <%=rs("acao")%></span></p><center> <form name="Cadastro" id="Cadastro" method="post">	 <p>	   <input type="hidden" name="cod" value="<%=cod%>">	   </p><center>	 <table width="673" border="0">	   <tr>		 <td width="663"><p>  </p>		   <table width="661" border="1" bordercolor="#00CCFF">			 <tr>			   <td width="89"><span class="texto10">Estabelecimento :</span></td>			   <%		MINHAVARR = rs("estabelecimento")		MEUARRAYR = SPLIT(MINHAVARR,",") %>			   <td width="206"><span class="texto10">				 <div style="DISPLAY: none; POSITION: absolute" align="left">				   <IFRAME src name="myIframe" id="myIframe" width="400" height="100" marginwidth="0" marginheight="0"></IFRAME>				 </div>				 <select name="estabelecimento" size="1" id="select" onChange="carregar();">				   <option value>...</option>				   <%		FOR I = LBOUND(MEUARRAYR) TO UBOUND(MEUARRAYR)			%>				   <%IF TRIM(MEUARRAYR(I)) <> "" THEN%>				   <option value="<%=(MEUARRAYR(I))%>"><%=(MEUARRAYR(I))%></option>				   <%END IF%>				   <%NEXT%>				 </select>			   </span></td>			   <td width="68"><span class="texto10">Promotora :</span></td>			   <td width="274"><span class="texto10">				 <select name="promotora" id="select2">				   <option value></option>				 </select>			   </span></td>			 </tr>		   </table>		   <table width="661" border="1" bordercolor="#00CCFF">			 <tr>			   <td width="86"><span class="texto10">Data :</span></td>			   <td width="559"><input name="data" type="text" id="data2" size="2">	  /		<input name="data" type="text" id="data2" size="2">	  /	  <input name="data" type="text" id="data2" size="4"></td>			 </tr>		   </table>		  			<%		MINHAVAR = rs("nosso_produto")		MEUARRAY = SPLIT(MINHAVAR,",") %>		   <%		FOR I = LBOUND(MEUARRAY) TO UBOUND(MEUARRAY)			%>				   <%IF TRIM(MEUARRAY(I)) <> "" THEN%>		   <table width="513" border="1" bordercolor="#00CCFF">				<tr>							   <td width="40" height="74"><span class="texto10">Produto:</span></td>			   <td width="457"><p class="texto10">				   				   <input name="produto" id="produto" type="text" value="<%=(MEUARRAY(I))%>">			   </p></td>			   <td>				 <table width="457" border="1" bordercolor="#00CCFF">				   <tr>					 <td><div align="center"><span class="texto10">Inicial</span></div></td>					 <td><div align="center"><span class="texto10">Entrada</span></div></td>					 <td><div align="center"><span class="texto10">Final</span></div></td>					 <td><div align="center"><span class="texto10">Vendas</span></div></td>				   </tr>				   <tr>					 <td>					   <div align="center">						 <input name="inicial" type="text" id="inicial" size="10" onKeyUp="valor(this);">					   </div></td>					 <td>					   <div align="center">						 <input name="entrada" type="text" id="entrada" size="10" onKeyUp="valor(this);">					 </div></td>					 <td>					   <div align="center">						 <input name="final" type="text" id="final" size="10" onKeyUp="valor(this);">					 </div></td>					 <td><div align="center"><span class="texto10">						 <input type="text" name="vendas" id="vendas">					 </span></div></td>				   </tr>				 </table>				 <span class="texto10"> </span></td>			 </tr>		   </table>		  </td>	   </tr> <%END IF%>		 <%NEXT%>	 </table></center>	 <p><br>		<script language="javascript" type="text/javascript">function QualBotao(Id) {	if (Id=="1") {	document.getElementById("Cadastro").action = "acoes_f2.asp?cod="+document.getElementById('cod').value+"&estabelecimento="+estabelecimento+"&data="+data;	} else {	document.getElementById("Cadastro").action = "acoes_valida.asp";	}	document.getElementById("Cadastro").submit();}		</script>				<input type="button" id="2" value="Enviar" onClick="QualBotao(this.id);">  </p>  </form></center><center><p> </p>  <p>	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="50" height="50">	  <param name="movie" value="voltar4.swf">	  <param name="quality" value="high">	  <embed src="voltar4.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="50" height="50"></embed>	</object>	<br></p></center><p><img src="imagens/rodape.gif" width="779" height="44"></p></body></html>

 

Valeu!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Adriano!!!

 

Fiz as alterações ai no meu HTML exibiu assim:

 

<input name="inicial" type="text" id="inicial E" size="10" onKeyUp="valor(this);">

como que posso adaptar os Arrays no JS???

 

Valeu cara!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

id="inicial E" ???? Por que não usa o ID (número) de I ? :o

você ta falando ao inves de usar o "E" usar o I???

É isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora entendi o que você quis falar mas seguinte meu Array exibe de 1 a 1milhão ou mais... depende dos produtos que quero cadastrar, da ação da agencia e etc... o que você fez anteriormente está otimo!!! :D O JS faz as funções pelo ID ou pelo nome do campo???Valeu!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu testei o script que você me passou acima realmente ficou assim o cod de fonte

 

<input name="inicial2" type="text" id="inicial2" size="10" onKeyUp="valor(this);"><br><input name="inicial3" type="text" id="inicial3" size="10" onKeyUp="valor(this);"><br><input name="inicial4" type="text" id="inicial4" size="10" onKeyUp="valor(this);"><br><input name="inicial5" type="text" id="inicial5" size="10" onKeyUp="valor(this);"><br><input name="inicial6" type="text" id="inicial6" size="10" onKeyUp="valor(this);"><br><input name="inicial7" type="text" id="inicial7" size="10" onKeyUp="valor(this);"><br><input name="inicial8" type="text" id="inicial8" size="10" onKeyUp="valor(this);"><br><input name="inicial9" type="text" id="inicial9" size="10" onKeyUp="valor(this);"><br><input name="inicial10" type="text" id="inicial10" size="10" onKeyUp="valor(this);"><br><input name="inicial11" type="text" id="inicial11" size="10" onKeyUp="valor(this);"><br><input name="inicial12" type="text" id="inicial12" size="10" onKeyUp="valor(this);"><br><input name="inicial13" type="text" id="inicial13" size="10" onKeyUp="valor(this);"><br><input name="inicial14" type="text" id="inicial14" size="10" onKeyUp="valor(this);"><br><input name="inicial15" type="text" id="inicial15" size="10" onKeyUp="valor(this);"><br>

Mas é como te falei posso ter milhares de produtos...

 

posso usar meu script anterior como estava e no ID ele ficar assim id="inicial15" ??? e manter o meu name somente com a palavra inicial???

 

Valeu!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!!!!

 

Então assim aqui você falou

 

For i = 1 to 15			Response.Write("<input name=""inicial"" type=""text"" id=""inicial" & i & """ size=""10"" onKeyUp=""valor(this);""><br>" & vbcrlf)			Next

1 to 15, mas eu posso ter muito mais como seria? você sabe?(sei que é ASP essa parte, mas se você souber fico grato)

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim então Adriano,

<%		MINHAVAR = rs("nosso_produto")		MEUARRAY = SPLIT(MINHAVAR,",")%>	   <%		FOR I = LBOUND(MEUARRAY) TO UBOUND(MEUARRAY)			%>				   <%IF TRIM(MEUARRAY(I)) <> "" THEN%>
e
<input name="inicial" type="text" id="inicial<%=(MEUARRAY(I))%>" size="10" onKeyUp="valor(this);">
Voltei o que tava... ai ficou assim o codigo de fonte:

<input name="inicial" type="text" id="inicial E" size="10" onKeyUp="valor(this);">

como que ao invez do "E" eu faço ficar o ID??? tentei varias formas aqui e não consegui... é necessario colocar o ID?Valeu!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
"E" é o nome do meu produto! como estou testando o sistema coloquei o nome do meu produto de A,B,C,D,E,F,G e H ai esse que te mostrei se refere a linha do produto "E"....

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.