Ir para conteúdo

POWERED BY:

Arquivado

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

Unisov

comparar campos

Recommended Posts

ola

tenho um formulario com 5 campos, onde o usuario digitara 5 nicks...

mas ele nao pode repetir os nicks em nenhum campos... nao podem haver dois nicks iguais...

algum pode me dar uma dica de como eu começo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque todos os campos com o mesmo nome, depois faça:

var campos = document.getElementsByName("NOME DOS CAMPOS");
var ok = true;
for(var i = 0; i < 5; i++){
 for(var j = i; j < 5; j++){
 	if(campos[i].value == campos[j].value){
 	ok = false;
 	}
 }
}

if(!ok) return false;

Mais ou menos assim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa

tentei de varias formas, sempre usando esse seu exemplo como modelo...

achei melhor criar a array no proprio codigo js...

ficou assim

 

function nickrepetido(){
array=Array();
array[0]=document.getElementById("eso").value;
array[1]=document.getElementById("eso2").value;
array[2]=document.getElementById("eso3").value;
array[3]=document.getElementById("eso4").value;
array[4]=document.getElementById("eso5").value;

teste=array[0];


for(var i = 0; i < 5; i++)
{
	for(var j = i; j < 5; j++)
	{
        if(array[i].value == array[j].value)
        {
        alert(teste); return false;
        }
	}
}
}
mas infelizmente nao funciona, pois ele retorna false de todas as formas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu segui esse modelo e fiz assim...

array=Array();
array[0]=document.getElementById("eso").value;
array[1]=document.getElementById("eso2").value;
array[2]=document.getElementById("eso3").value;
array[3]=document.getElementById("eso4").value;
array[4]=document.getElementById("eso5").value;

for(var i = 0; i < 5; i++)
{
	for(var j = i; j < 5; j++)
	{
        if(array[i] == array[j])
        {
        ok = false;
        }
	}
}
if(!ok) 
        {
        alert(ok); return false;
        }
mas nao deu certo, pois, pelo q entendi, quando o loop interno percorre os valores do loop externo ele sempre vai se econtrar com o campo igual, retornando "ok=false"

tipo, ele serpre vai passar por array[0]=array[0]

ou estou enganado e estou fazendo algo errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, tem um erro aih...

 

Agora deve funcionar:

var campos = document.getElementsByName("NOME DOS CAMPOS");
var ok = true;
for(var i = 0; i < 5; i++){
 for(var j = i+1; j < 5; j++){
 if(campos[i].value == campos[j].value){
 ok = false;
 }
 }
}

if(!ok) return false;

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.