2009-11-18 5 views
0

J'ai le problème suivant.Javascript: Pour vérifier si les champs d'un formulaire ne sont pas identiques

Ce qui suit est la forme que j'ai

<input type="text" name="email1" /> 
<input type="text" name="email2" /> 
<input type="text" name="email3" /> 
<input type="text" name="email4" /> 
<input type="text" name="email5" /> 

Je veux que tous les 5 ids e-mail pour être différent (unique) i.e., je ne veux pas l'utilisateur à entrer dans les mêmes identifiants de messagerie dans tous les domaines.

J'ai besoin que cela soit fait dans javscript

Quelqu'un peut-il s'il vous plaît me aider

Merci,
Kartik

Répondre

0
for (var i = 1; i < 6; i++) { 
    for (var j = i+1; j < 6; j++) { 
     if (document.getElementsByName("email"+i)[0].value == 
      document.getElementsByName("email"+j)[0].value) { 
      alert("Fields "+i+" and "+j+" are equal!"); 
     } 
    } 
} 

Vous pouvez ajouter un autre contrôle, si vous permettez plusieurs des champs pour rester vide.

0

En Javascript, un tableau peut agir comme une pile (push/pop) dans laquelle vous pouvez pousser de nouveaux objets après avoir vérifié qu'ils ne sont pas déjà dans la pile.

var emailAddrs = []; 
var item; 

    for(var i = 0; i < 5; i++){ 
     item = document.getElementsByName("email"+i)[0].value; 
     if(! emailAddrs.contains(item)) 
     emailAddrs.push(item); 
    } 

MISE À JOUR

Une fois que vous avez votre build tableau, vous pouvez alors l'utiliser comme base pour faire d'autres opérations. En utilisant la propriété length du tableau, vous pouvez vérifier combien d'éléments sont dans le tableau par rapport à combien vous vous attendiez à voir.

Vous pouvez également pousser des éléments identiques dans un autre tableau et utiliser ces informations pour permettre à l'utilisateur savoir ce qui doit changer

MISE À JOUR 2

Je viens de réaliser que la méthode Contains j'utilise est créé en ajoutant le code suivant:

Array.prototype.contains = function(obj) { 
    var i = this.length; 
    while (i--) { 
    if (this[i] === obj) { 
     return true; 
    } 
    } 
    return false; 
} 

Cela crée alors une méthode contains à chaque objet de tableau.

Si vous utilisez jQuery, vous pouvez également faire $.inArray(value, array)

+0

Y at-il quelque chose qui manque dans le code ci-dessus? Comme ... vous vérifiez alors la taille de la rangée et si elle est 5 alors toutes les valeurs étaient différentes? –

+0

À peu près. Une fois que vous savez combien d'éléments sont dans le tableau, et combien vous attendiez, vous pouvez faire quelque chose avec cette information. Vous pouvez également pousser les adresses e-mail identiques sur une autre pile et utiliser cette information pour dire à l'utilisateur ce qui était identique. –

+0

Quelle est cette méthode magique «contient»? –