Ir para conteúdo

POWERED BY:

Arquivado

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

nknk

função génerica

Recommended Posts

Eu tenho um formulário com campos com nomes a1,b1,c1,d1 que se repetem(aumentando os nºs) até a10,b10,c10,d10.

Eu preciso criar uma função generica, lerid(), para todos esses campos que se repetem de 1 a 10. Como eu não sei cria-la

eu tive que gerar 10 funções variando o id. Como eu faria esse uma única função (genérica) ? Pensei em pegar o id em c1,

1, no caso e depois substitituir nos outros dados que tenham números, mas não sei como fazer.

 

<script>
 function lerid() {
	var id = document.frm.b1.value;
	var result = XMLHttp.responseText; // (vem de um codigo AJAX)
	document.frm.a1.value = result;
	document.frm.c1.value = result * b1; 
	document.frm.d1.value = result * b1 + 10;
}
</script>

<form id="frm" name="frm" method="post" action="">
  <input name="a1" type="text" id="a1" />
  <input name="b1" type="text" id="b1" />
  <input name="c1" type="text" id="c1" onclick="lerdid()" />
  <input name="d1" type="hidden" value="d1" />
  <input name="a2" type="text" id="a2" />
  <input name="b2" type="text" id="b2" />
  <input name="c2" type="text" id="c2" onclick="lerdid()" />
  <input name="d2" type="hidden" value="d2" />
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só me explica um pouco melhor o que a sua função faz, por favor ???

 

Tirando isso, oq você pode fazer é usar o "document.getElementsByTagName("input")" para pegar todos os campos do tipo "input"..

 

var campos = document.getElementsByTagName("input");

Ai depois você faz um "for"..

 

for (i=0;i < campos.length; i++)
{
alert(campos[i].id);
}

 

Isso que te postei é ssó um exemplo do que você pode fazer.. não oq você deve fazer.....

 

SSó postei isso pra você saber como pode proceder em sua funçção...

 

Espero ter ajudado...

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Darkdemo, obrigado por ter respondido

 

A função pega um dado de um campo (ex.:b1) e faz uma consulta sql com esse dado para procurar outros campos(ex.: end de imagem) (ajax), por isso q simplifiquei. Depois da leitura ela faz uns cálculos e retorna os valores em mais de um campo. Espero ter entendido a explicação, vou testar seu código e posto aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não entendi direito como seria sua solução, tentei uma outra, está errada, mas só alguns ajustes e acho q funcionaria. Ele pega o id no caso c1, procura pelo número e depois adiciona esse número a a, b, d.

 

<script>
function array_search(busca,oarray){
	for(var i in oarray){
		if(oarray[i]==busca){return i;}	
	}
	return false;
}

function lerid(id) {
	var id = document.getElementById(id);
	var num = new array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
	var numero = array_search("num", id);
	var a = "a" + numero;
	var b = "b" + numero;
	var c = "c" + numero;
	var d = "d" + numero;
	var d = document.frm. + a + .value;
	document.frm.+ b + .value = result;
	document.frm. + c + .value = result * d; 
</script>

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.