2009-11-18 3 views
0

У меня есть следующая проблема.Javascript: Чтобы проверить, не совпадают ли поля в форме

Ниже форма у меня есть

<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" /> 

Я хочу, чтобы все 5 идентификаторов электронной почты, чтобы быть различными (уникальным) то есть, я не хочу, чтобы пользователь входить одни и те же идентификаторы электронной почты во всех областях.

Мне нужно, чтобы это было сделано в Javscript

Может кто-то пожалуйста, помогите мне с этим

Спасибо,
Картик

ответ

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!"); 
     } 
    } 
} 

Вы можете добавить еще один чек, если вы позволите несколько полей остаются пустыми.

0

В Javascript Array может действовать как стек (push/pop), в котором вы можете выталкивать новые элементы после проверки того, что они еще не находятся в стеке.

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); 
    } 

UPDATE

После того, как у вас есть построить массив, вы можете использовать его в качестве основы для выполнения других операций. Используя свойство length массива, вы можете проверить, сколько элементов находится в массиве, и сколько вы ожидали увидеть.

Вы также можете нажать идентичные элементы в другой массив и использовать эту информацию, чтобы дать пользователю понять, что нуждается в изменении

UPDATE 2

Я просто понял, что содержит метод я использую создается путем добавления следующий код:

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

Это затем создает contains метод для каждого объекта массива.

Если вы используете JQuery, вы можете также сделать $.inArray(value, array)

+0

Есть ли что-то отсутствует в коде выше? Как ... вы затем проверяете размер массива, и если это 5, все значения были разными? – 2009-11-18 10:41:48

+0

В значительной степени. Как только вы узнаете, сколько элементов находится в массиве, и сколько вы ожидали, вы можете сделать что-то с этой информацией. Вы также можете нажать идентичные адреса электронной почты на стек anothre и использовать эту информацию, чтобы сообщить пользователю, что было идентично. –

+0

Что это за волшебный метод 'contains'? –

Смежные вопросы