Ir para conteúdo

POWERED BY:

Arquivado

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

Raffael Dornelles

[Resolvido] Varer campo criados no innerHTML

Recommended Posts

Bom dia!

 

Criei uma função para que cada vez que eu seleciono uma opção do select ele insere campos dinamicos com o innerHTML, agora estou precisando varrer esses campos para que não possa ficar campos com nomes duplicados!

 

Alguem pode ajudar??

 

 

função para criar campos dinamicos:

 

 


function projeto_vincular()
{
var vazio = "";
var i;
var obj = document.body.getElementsByTagName('input');
var codigo_parceria = document.getElementById("parceiroProjeto").value;
var parceria = document.getElementById("parceiroProjeto").selectedIndex;
var textoAExibir = document.cadastrarVinculoProjeto.parceiroProjeto.options[parceria].text;

var obj = "<table id='Obj"+i+"'<tr><td class='texto-pesado-titulo'><br /><input name='nome_parceria[]' type='text' class='campoTableParceria' id='nome_parceria[]' size='30' maxlength='50' value=" + textoAExibir + " disabled><input type='hidden' name='codigo_parceria[]' id='codigo_parceria[]' value='"+ codigo_parceria +"'><a href='#' id='Obj"+i+"'  onclick='deleta_parceiro(id)'><img src='imagens/b_drop.png' alt='remove' title='Remover' class='tbl-control-image'></a></td></tr>";

if(document.getElementById("parceiroProjeto").value == 0)
	{
		vazio+="\n \Projeto\ ";
		document.getElementById("parceiroProjeto").className = 'ui-state-error error';
	}

if(vazio == "")
{
document.getElementById("table_parceria").style.display = "block";
document.getElementById("titulo_div").style.display = "block";
document.getElementById("table_parceria").innerHTML += obj;
i++;
document.getElementById("ano").value = document.getElementById("vincular_ano").value;
document.getElementById("sequencia").value = document.getElementById("vincular_sequencia").value;
document.getElementById("projeto").value = document.getElementById("vincular_projeto").value;
document.getElementById("d_inic").value = document.getElementById("data_inicio").value;
document.getElementById("d_fim").value = document.getElementById("data_fim").value;

document.getElementById("vincular_ano").disabled = true;
document.getElementById("vincular_sequencia").disabled = true;
document.getElementById("vincular_projeto").disabled = true;
document.getElementById("data_inicio").disabled = true;
document.getElementById("data_fim").disabled = true;

}
if(vazio != "")
	{
		alert("Campos vazios:\n " + vazio + "");
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
estou precisando varrer esses campos para que não possa ficar campos com nomes duplicados!

só de você estar usando arrays, eles já não estão com nomes duplicados.

 

qual é a necessidade ? ou pq você acha q precisa varrer eles ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando me referi a os nomes são os valores de dentro do campo e não a names!

 

Exemplificando melhor!

 

Tenho um select de "PARCEIROS", não posso permitir que seja colocado dois parceiros iguais!

 

entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então estamos falando de values.

 

você pode usar um getElementsByTagName('input') para pegar todos os inputs do documento.

Para limitar isso, de forma inteligente e prática:

 

var inputs = document.getElementById('container_inputs').getElementsByTagName('input');

 

assim você pega todos os inputs que estiverem dentro do id="container_inputs".

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não.

 

no caso, o 'equivalentei, é o teu:

document.getElementById("table_parceria").innerHTML += obj;

 

varra o DOM apartir desse teu elemento, conforme expliquei. O ID que mencionei foi apenas ilustrativo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então só para ver se eu entedi, com isso

var inputs = document.getElementById('table_parceria').getElementsByTagName('input');

vou varrer(com um laço) todos os input dentro da minha div "table_parceria".isso?

 

Perfeito, agradeço a ajuda....vou terminar de arrumar a função e posto aqui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Função pronta!

 

function projeto_vincular()
{
var error = "";
var vazio = "";
var i;
var nome_igual="";
var inputs = document.getElementById('table_parceria').getElementsByTagName('input');// seleciona todos os input da div "table_parceria"
var codigo_parceria = document.getElementById("parceiroProjeto").value;
var parceria = document.getElementById("parceiroProjeto").selectedIndex;
var textoAExibir = document.cadastrarVinculoProjeto.parceiroProjeto.options[parceria].text;

var obj = "<table id='"+codigo_parceria+"'<tr><td class='texto-pesado-titulo'><br /><input name='nome_parceria[]' type='text' class='campoTableParceria' id='nome_parceria[]' size='30' maxlength='50' value=" + textoAExibir + " disabled><input type='hidden' name='codigo_parceria[]' id='codigo_parceria[]' value='"+ codigo_parceria +"'><a href='#' id='"+codigo_parceria+"'  onclick='deleta_parceiro(id)'><img src='imagens/b_drop.png' alt='remove' title='Remover' class='tbl-control-image'></a></td></tr>";

// verifica classe do campo

if(document.getElementById("vincular_ano").className == 'ui-state-error error')
	{
		error+="\n \Ano\ ";
	}

if(document.getElementById("vincular_sequencia").className == 'ui-state-error error')
	{
		error+="\n \Sequencia\ ";
	}
if(document.getElementById("parceiroProjeto").className == 'ui-state-error error')
	{
		error+="\n \Projeto\ ";
	}

// verifica se os campos então vazios

if(document.getElementById("vincular_ano").value == "")
	{
		vazio+="\n \Ano\ ";
		document.getElementById("vincular_ano").className = 'ui-state-error error';
	}
if(document.getElementById("vincular_sequencia").value == "")
	{
		vazio+="\n \Sequencia\ ";
		document.getElementById("vincular_sequencia").className = 'ui-state-error error';
	}
if(document.getElementById("parceiroProjeto").value == 0)
	{
		vazio+="\n \Projeto\ ";
		document.getElementById("parceiroProjeto").className = 'ui-state-error error';
	}


if(vazio == "" && error == "")
{
// verifica se foi inserido algo no innerHTML
document.getElementById("table_parceria").style.display = "block";
document.getElementById("titulo_div").style.display = "block";
for(i=0;inputs[i];i++)
{
if(inputs[i].value == codigo_parceria)
{
	nome_igual+="\n \nome igual\ ";
}
}
if(nome_igual == "")
{
document.getElementById("table_parceria").innerHTML += obj;
i++;
document.getElementById("ano").value = document.getElementById("vincular_ano").value;
document.getElementById("sequencia").value = document.getElementById("vincular_sequencia").value;
document.getElementById("projeto").value = document.getElementById("vincular_projeto").value;
document.getElementById("d_inic").value = document.getElementById("data_inicio").value;
document.getElementById("d_fim").value = document.getElementById("data_fim").value;

document.getElementById("vincular_ano").disabled = true;
document.getElementById("vincular_sequencia").disabled = true;
document.getElementById("vincular_projeto").disabled = true;
document.getElementById("data_inicio").disabled = true;
document.getElementById("data_fim").disabled = true;
}
else{
	alert('O parceiro selecionado já está na lista');
}
}
if(vazio != "")
	{
		alert("Campos vazios:\n " + vazio + "");
	}
}

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.